@cryptlex/web-components 6.7.8 → 6.7.10
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/components/alert.d.ts +2 -2
- package/dist/components/alert.js +2 -2
- package/dist/components/alert.js.map +1 -1
- package/dist/components/autocomplete.js +2 -2
- package/dist/components/autocomplete.js.map +1 -1
- package/dist/components/avatar.d.ts +1 -1
- package/dist/components/avatar.js +2 -2
- package/dist/components/avatar.js.map +1 -1
- package/dist/components/badge.d.ts +2 -2
- package/dist/components/badge.js +2 -2
- package/dist/components/badge.js.map +1 -1
- package/dist/components/breadcrumbs.d.ts +5 -5
- package/dist/components/breadcrumbs.js +2 -2
- package/dist/components/breadcrumbs.js.map +1 -1
- package/dist/components/button.d.ts +3 -3
- package/dist/components/button.js +2 -2
- package/dist/components/button.js.map +1 -1
- package/dist/components/calendar.d.ts +7 -7
- package/dist/components/calendar.js +2 -2
- package/dist/components/calendar.js.map +1 -1
- package/dist/components/card.d.ts +6 -6
- package/dist/components/card.js +2 -2
- package/dist/components/card.js.map +1 -1
- package/dist/components/charts.d.ts +8 -8
- package/dist/components/charts.js +2 -2
- package/dist/components/charts.js.map +1 -1
- package/dist/components/checkbox.d.ts +2 -2
- package/dist/components/checkbox.js +2 -2
- package/dist/components/checkbox.js.map +1 -1
- package/dist/components/code-block.d.ts +1 -1
- package/dist/components/code-block.js +2 -2
- package/dist/components/code-block.js.map +1 -1
- package/dist/components/copy-button.d.ts +1 -1
- package/dist/components/copy-button.js +2 -2
- package/dist/components/copy-button.js.map +1 -1
- package/dist/components/data-table-filter.d.ts +1 -1
- package/dist/components/data-table-filter.js +1 -2
- package/dist/components/data-table.d.ts +12 -87
- package/dist/components/data-table.js +1 -2
- package/dist/components/date-picker.d.ts +3 -3
- package/dist/components/date-picker.js +2 -2
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/datefield.d.ts +4 -4
- package/dist/components/datefield.js +2 -2
- package/dist/components/datefield.js.map +1 -1
- package/dist/components/dialog.d.ts +8 -8
- package/dist/components/dialog.js +2 -2
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/disclosure.d.ts +4 -4
- package/dist/components/disclosure.js +2 -2
- package/dist/components/disclosure.js.map +1 -1
- package/dist/components/divider.d.ts +2 -2
- package/dist/components/divider.js +2 -2
- package/dist/components/divider.js.map +1 -1
- package/dist/components/duration-field.d.ts +2 -2
- package/dist/components/duration-field.js +2 -2
- package/dist/components/duration-field.js.map +1 -1
- package/dist/components/file-trigger.d.ts +1 -1
- package/dist/components/file-trigger.js +2 -2
- package/dist/components/file-trigger.js.map +1 -1
- package/dist/components/form.d.ts +11 -11
- package/dist/components/form.js +2 -2
- package/dist/components/form.js.map +1 -1
- package/dist/components/icons.js +1 -2
- package/dist/components/id-search.d.ts +5 -5
- package/dist/components/id-search.js +2 -2
- package/dist/components/id-search.js.map +1 -1
- package/dist/components/kbd.d.ts +1 -1
- package/dist/components/kbd.js +2 -2
- package/dist/components/kbd.js.map +1 -1
- package/dist/components/list-box.d.ts +3 -3
- package/dist/components/list-box.js +2 -2
- package/dist/components/list-box.js.map +1 -1
- package/dist/components/loader.d.ts +1 -1
- package/dist/components/loader.js +2 -2
- package/dist/components/loader.js.map +1 -1
- package/dist/components/menu.d.ts +7 -7
- package/dist/components/menu.js +2 -2
- package/dist/components/menu.js.map +1 -1
- package/dist/components/multi-select.d.ts +2 -2
- package/dist/components/multi-select.js +2 -2
- package/dist/components/multi-select.js.map +1 -1
- package/dist/components/numberfield.d.ts +5 -5
- package/dist/components/numberfield.js +2 -2
- package/dist/components/numberfield.js.map +1 -1
- package/dist/components/object-table.d.ts +1 -1
- package/dist/components/object-table.js +2 -2
- package/dist/components/object-table.js.map +1 -1
- package/dist/components/offline-request-file-input.d.ts +2 -2
- package/dist/components/offline-request-file-input.js +2 -2
- package/dist/components/offline-request-file-input.js.map +1 -1
- package/dist/components/otpfield.d.ts +1 -1
- package/dist/components/otpfield.js +2 -2
- package/dist/components/otpfield.js.map +1 -1
- package/dist/components/popover.d.ts +2 -2
- package/dist/components/popover.js +2 -2
- package/dist/components/popover.js.map +1 -1
- package/dist/components/progress-bar.d.ts +1 -1
- package/dist/components/progress-bar.js +2 -2
- package/dist/components/progress-bar.js.map +1 -1
- package/dist/components/searchfield.d.ts +1 -1
- package/dist/components/searchfield.js +2 -2
- package/dist/components/searchfield.js.map +1 -1
- package/dist/components/select-options.js +2 -2
- package/dist/components/select-options.js.map +1 -1
- package/dist/components/select.d.ts +5 -5
- package/dist/components/select.js +2 -2
- package/dist/components/select.js.map +1 -1
- package/dist/components/sidebar.d.ts +20 -20
- package/dist/components/sidebar.js +2 -2
- package/dist/components/sidebar.js.map +1 -1
- package/dist/components/skeleton.d.ts +1 -1
- package/dist/components/skeleton.js +2 -2
- package/dist/components/skeleton.js.map +1 -1
- package/dist/components/steps.d.ts +1 -1
- package/dist/components/steps.js +2 -2
- package/dist/components/steps.js.map +1 -1
- package/dist/components/table-of-contents.d.ts +1 -1
- package/dist/components/table-of-contents.js +2 -2
- package/dist/components/table-of-contents.js.map +1 -1
- package/dist/components/table.d.ts +8 -8
- package/dist/components/table.js +2 -2
- package/dist/components/table.js.map +1 -1
- package/dist/components/tabs.d.ts +4 -4
- package/dist/components/tabs.js +2 -2
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/tag-group.d.ts +2 -2
- package/dist/components/tag-group.js +2 -2
- package/dist/components/tag-group.js.map +1 -1
- package/dist/components/textfield.d.ts +2 -2
- package/dist/components/textfield.js +2 -2
- package/dist/components/textfield.js.map +1 -1
- package/dist/components/timeline.d.ts +6 -6
- package/dist/components/timeline.js +2 -2
- package/dist/components/timeline.js.map +1 -1
- package/dist/components/toast.d.ts +1 -1
- package/dist/components/toast.js +2 -2
- package/dist/components/toast.js.map +1 -1
- package/dist/components/tooltip.d.ts +2 -2
- package/dist/components/tooltip.js +2 -2
- package/dist/components/tooltip.js.map +1 -1
- package/dist/data-table-filter.js +2 -0
- package/dist/data-table-filter.js.map +1 -0
- package/dist/icons.js +2 -0
- package/dist/icons.js.map +1 -0
- package/dist/stories/atoms/color.stories.d.ts +11 -0
- package/dist/stories/atoms/icons.stories.d.ts +11 -0
- package/dist/stories/atoms/type.stories.d.ts +13 -0
- package/dist/stories/components/alert.stories.d.ts +11 -0
- package/dist/stories/components/avatar.stories.d.ts +6 -0
- package/dist/stories/components/badge.stories.d.ts +6 -0
- package/dist/stories/components/breadcrumbs.stories.d.ts +5 -0
- package/dist/stories/components/button.stories.d.ts +6 -0
- package/dist/stories/components/calendar.stories.d.ts +10 -0
- package/dist/stories/components/card.stories.d.ts +9 -0
- package/dist/stories/components/code-block.stories.d.ts +12 -0
- package/dist/stories/components/copy-button.stories.d.ts +6 -0
- package/dist/stories/components/date-range-picker.stories.d.ts +23 -0
- package/dist/stories/components/datepicker.stories.d.ts +23 -0
- package/dist/stories/components/dialog.stories.d.ts +5 -0
- package/dist/stories/components/divider.stories.d.ts +13 -0
- package/dist/stories/components/file-trigger.stories.d.ts +10 -0
- package/dist/stories/components/kbd.stories.d.ts +49 -0
- package/dist/stories/components/loader.stories.d.ts +12 -0
- package/dist/stories/components/offline-request-file-upload.stories.d.ts +10 -0
- package/dist/stories/components/progress-bar.stories.d.ts +15 -0
- package/dist/stories/components/sheet.stories.d.ts +15 -0
- package/dist/stories/components/skeleton.stories.d.ts +10 -0
- package/dist/stories/components/tabs.stories.d.ts +12 -0
- package/dist/stories/components/tag-group.stories.d.ts +8 -0
- package/dist/stories/components/timeline.stories.d.ts +6 -0
- package/dist/stories/components/timepicker.stories.d.ts +23 -0
- package/dist/stories/components/toast.stories.d.ts +12 -0
- package/dist/stories/components/tooltip.stories.d.ts +9 -0
- package/dist/stories/examples/autocomplete.stories.d.ts +11 -0
- package/dist/stories/examples/charts.stories.d.ts +11 -0
- package/dist/stories/examples/data-table.stories.d.ts +9 -0
- package/dist/stories/examples/key-value-card.stories.d.ts +42 -0
- package/dist/stories/examples/sidebar.stories.d.ts +32 -0
- package/dist/stories/examples/table-of-contents.stories.d.ts +6 -0
- package/dist/stories/inputs/form.stories.d.ts +6 -0
- package/dist/stories/inputs/id-search.stories.d.ts +8 -0
- package/dist/stories/inputs/otp-field.stories.d.ts +6 -0
- package/dist/stories/inputs/textfield.stories.d.ts +8 -0
- package/dist/stories/story-commons.d.ts +3 -0
- package/dist/stories/utilities/resource-formatter.stories.d.ts +7 -0
- package/dist/utilities/auth.js +2 -2
- package/dist/utilities/auth.js.map +1 -1
- package/dist/utilities/countries.d.ts +1 -1
- package/dist/utilities/countries.js +2 -2
- package/dist/utilities/countries.js.map +1 -1
- package/dist/utilities/ctx-client.d.ts +1 -1
- package/dist/utilities/ctx-client.js +2 -2
- package/dist/utilities/ctx-client.js.map +1 -1
- package/dist/utilities/date.js +2 -2
- package/dist/utilities/date.js.map +1 -1
- package/dist/utilities/duration.js +2 -2
- package/dist/utilities/duration.js.map +1 -1
- package/dist/utilities/empty-option.js +2 -2
- package/dist/utilities/empty-option.js.map +1 -1
- package/dist/utilities/errors.js +2 -2
- package/dist/utilities/errors.js.map +1 -1
- package/dist/utilities/form-context.js +2 -2
- package/dist/utilities/form-context.js.map +1 -1
- package/dist/utilities/form-hook.js +2 -2
- package/dist/utilities/form-hook.js.map +1 -1
- package/dist/utilities/form.js +2 -2
- package/dist/utilities/form.js.map +1 -1
- package/dist/utilities/highlight-code.js +2 -2
- package/dist/utilities/highlight-code.js.map +1 -1
- package/dist/utilities/normalize-arrays.js +2 -2
- package/dist/utilities/normalize-arrays.js.map +1 -1
- package/dist/utilities/numbers.js +2 -2
- package/dist/utilities/numbers.js.map +1 -1
- package/dist/utilities/resources.d.ts +1 -1
- package/dist/utilities/resources.js +2 -2
- package/dist/utilities/resources.js.map +1 -1
- package/dist/utilities/shiki.js +2 -2
- package/dist/utilities/shiki.js.map +1 -1
- package/dist/utilities/string.js +2 -2
- package/dist/utilities/string.js.map +1 -1
- package/dist/utilities/theme.js +2 -2
- package/dist/utilities/theme.js.map +1 -1
- package/dist/utilities/use-code-highlight.js +2 -2
- package/dist/utilities/use-code-highlight.js.map +1 -1
- package/dist/utilities/use-mobile.js +2 -2
- package/dist/utilities/use-mobile.js.map +1 -1
- package/dist/utilities/validators.js +2 -2
- package/dist/utilities/validators.js.map +1 -1
- package/package.json +40 -40
- package/dist/components/data-table-filter.js.map +0 -1
- package/dist/components/data-table.js.map +0 -1
- package/dist/components/icons.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";import{
|
|
2
|
-
//# sourceMappingURL=checkbox.js.map
|
|
1
|
+
"use client";import{classNames as e}from"../utilities/theme.js";import{at as t,c as n}from"../icons.js";import{useFieldContext as r}from"../utilities/form-context.js";import{FormField as i,FormFieldDescription as a,FormFieldLabel as o,labelVariants as s}from"./form.js";import{useId as c}from"react";import{Fragment as l,jsx as u,jsxs as d}from"react/jsx-runtime";import{Checkbox as f,CheckboxGroup as p,composeRenderProps as m}from"react-aria-components";var h=`group-data-[disabled]/checkbox:cursor-not-allowed group-data-[disabled]/checkbox:opacity-50`,g=`group-data-[invalid]/checkbox:border-destructive`,_=`focus:outline-none focus-visible:outline-none`,v=`group-data-[selected]/checkbox:bg-primary`,y=`relative shrink-0 h-6 w-11 rounded-full border border-input bg-surface-primary transition-colors duration-200`,b=`absolute top-1/2 -translate-y-1/2 left-0.5 h-5 w-5 rounded-full bg-surface-secondary border border-input transition-transform duration-200`,x=`flex shrink-0 items-center bg-surface-primary rounded-sm justify-center border border-input text-current ring-offset-surface-secondary`,S={sm:`size-icon`,lg:`size-input`},C={sm:`size-3`,lg:`size-icon`},w=p;function T({className:r,label:p,description:w,errorMessage:T,requiredIndicator:E,variant:D=`checkbox`,size:O=`sm`,...k}){let A=c(),j=k.id||A,M=D===`switch`,N=!!(p||w||T||E),P=u(f,{className:m(r,t=>e(`group/checkbox cursor-pointer relative focus-ring flex items-center gap-x-2 disabled-muted`,s,t)),id:j,...k,children:m(u(l,{}),(r,i)=>M?u(`div`,{className:e(y,v,h,g,`group-data-[invalid]/checkbox:group-data-[selected]/checkbox:bg-destructive`,_),children:u(`div`,{className:e(b,`group-data-[selected]/checkbox:translate-x-4.5`,h,g)})}):d(`div`,{className:e(x,`group-data-[indeterminate]/checkbox:bg-primary`,v,`group-data-[indeterminate]/checkbox:text-primary-foreground group-data-[selected]/checkbox:text-primary-foreground`,h,g,`group-data-[invalid]/checkbox:group-data-[selected]/checkbox:bg-destructive group-data-[invalid]/checkbox:group-data-[selected]/checkbox:text-destructive-foreground`,_,S[O]),children:[i.isIndeterminate&&u(t,{className:C[O]}),!i.isIndeterminate&&i.isSelected&&u(n,{className:C[O]})]}))});return N?u(`div`,{className:`group form-field`,children:u(i,{errorMessage:T,htmlFor:j,children:d(`div`,{className:`flex items-start gap-1`,children:[P,d(`div`,{className:`flex flex-col gap-1`,children:[p&&u(o,{htmlFor:j,children:p}),w&&u(a,{children:w})]})]})})}):u(`div`,{className:`group flex`,children:P})}function E({...e}){let t=r({disabled:e.isDisabled});return u(T,{requiredIndicator:t.isRequired,isSelected:t.state.value,isDisabled:t.isSubmitting||e.isDisabled,onChange:()=>t.handleChange(!t.state.value),onBlur:t.handleBlur,...e})}export{T as Checkbox,w as CheckboxGroup,E as TfCheckbox};
|
|
2
|
+
//# sourceMappingURL=checkbox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.js","sources":["../../lib/components/checkbox.tsx"],"sourcesContent":["'use client';\nimport { useId } from 'react';\nimport {\n Checkbox as AriaCheckbox,\n CheckboxGroup as AriaCheckboxGroup,\n composeRenderProps,\n type CheckboxProps as AriaCheckboxProps,\n} from 'react-aria-components';\n\nimport { useFieldContext } from '../utilities/form-context';\nimport { classNames } from '../utilities/theme';\nimport { FormField, FormFieldLabel, FormFieldDescription, labelVariants, type FormFieldProps } from './form';\nimport { IcCheck, IcMinus } from './icons';\n\nconst disabledClasses = 'group-data-[disabled]/checkbox:cursor-not-allowed group-data-[disabled]/checkbox:opacity-50';\nconst invalidBorderClasses = 'group-data-[invalid]/checkbox:border-destructive';\nconst focusResetClasses = 'focus:outline-none focus-visible:outline-none';\nconst selectedPrimaryClasses = 'group-data-[selected]/checkbox:bg-primary';\n\nconst switchBaseClasses =\n 'relative shrink-0 h-6 w-11 rounded-full border border-input bg-surface-primary transition-colors duration-200';\nconst switchKnobClasses =\n 'absolute top-1/2 -translate-y-1/2 left-0.5 h-5 w-5 rounded-full bg-surface-secondary border border-input transition-transform duration-200';\n\nconst checkboxBaseClasses =\n 'flex shrink-0 items-center bg-surface-primary rounded-sm justify-center border border-input text-current ring-offset-surface-secondary';\n\nconst sizeClasses = {\n sm: 'size-icon',\n lg: 'size-input',\n};\n\nconst iconSizeClasses = {\n sm: 'size-3',\n lg: 'size-icon',\n};\nexport const CheckboxGroup = AriaCheckboxGroup;\ntype CheckboxProps = AriaCheckboxProps &\n FormFieldProps & {\n variant?: 'checkbox' | 'switch';\n size?: 'sm' | 'lg';\n };\nexport function Checkbox({\n className,\n label,\n description,\n errorMessage,\n requiredIndicator,\n variant = 'checkbox',\n size = 'sm',\n ...props\n}: Omit<CheckboxProps, 'children'>) {\n const generatedId = useId();\n const fieldId = props.id || generatedId;\n const isSwitch = variant === 'switch';\n const hasFormField = !!(label || description || errorMessage || requiredIndicator);\n const checkbox = (\n <AriaCheckbox\n className={composeRenderProps(className, className =>\n classNames(\n 'group/checkbox cursor-pointer relative focus-ring flex items-center gap-x-2 disabled-muted',\n labelVariants,\n className\n )\n )}\n id={fieldId}\n {...props}\n >\n {composeRenderProps(<></>, (_, renderProps) => {\n if (isSwitch) {\n return (\n <div\n className={classNames(\n switchBaseClasses,\n selectedPrimaryClasses,\n disabledClasses,\n invalidBorderClasses,\n 'group-data-[invalid]/checkbox:group-data-[selected]/checkbox:bg-destructive',\n focusResetClasses\n )}\n >\n <div\n className={classNames(\n switchKnobClasses,\n 'group-data-[selected]/checkbox:translate-x-4.5',\n disabledClasses,\n invalidBorderClasses\n )}\n />\n </div>\n );\n }\n\n return (\n <div\n className={classNames(\n checkboxBaseClasses,\n 'group-data-[indeterminate]/checkbox:bg-primary',\n selectedPrimaryClasses,\n 'group-data-[indeterminate]/checkbox:text-primary-foreground group-data-[selected]/checkbox:text-primary-foreground',\n disabledClasses,\n invalidBorderClasses,\n 'group-data-[invalid]/checkbox:group-data-[selected]/checkbox:bg-destructive group-data-[invalid]/checkbox:group-data-[selected]/checkbox:text-destructive-foreground',\n focusResetClasses,\n sizeClasses[size]\n )}\n >\n {renderProps.isIndeterminate && <IcMinus className={iconSizeClasses[size]} />}\n {!renderProps.isIndeterminate && renderProps.isSelected && (\n <IcCheck className={iconSizeClasses[size]} />\n )}\n </div>\n );\n })}\n </AriaCheckbox>\n );\n if (!hasFormField) return <div className=\"group flex\">{checkbox}</div>;\n return (\n <div className=\"group form-field\">\n <FormField {...{ errorMessage, htmlFor: fieldId }}>\n <div className=\"flex items-start gap-1\">\n {checkbox}\n <div className=\"flex flex-col gap-1\">\n {label && <FormFieldLabel htmlFor={fieldId}>{label}</FormFieldLabel>}\n {description && <FormFieldDescription>{description}</FormFieldDescription>}\n </div>\n </div>\n </FormField>\n </div>\n );\n}\n\nexport type TfCheckboxProps = Omit<React.ComponentProps<typeof Checkbox>, 'onChange' | 'onBlur' | 'isChecked'>;\nexport function TfCheckbox({ ...props }: TfCheckboxProps) {\n const field = useFieldContext<boolean>({ disabled: props.isDisabled });\n return (\n <Checkbox\n requiredIndicator={field.isRequired}\n isSelected={field.state.value}\n isDisabled={field.isSubmitting || props.isDisabled}\n onChange={() => field.handleChange(!field.state.value)}\n onBlur={field.handleBlur}\n {...props}\n />\n );\n}\n"],"
|
|
1
|
+
{"version":3,"file":"checkbox.js","names":[],"sources":["../../lib/components/checkbox.tsx"],"sourcesContent":["'use client';\nimport { useId } from 'react';\nimport {\n Checkbox as AriaCheckbox,\n CheckboxGroup as AriaCheckboxGroup,\n composeRenderProps,\n type CheckboxProps as AriaCheckboxProps,\n} from 'react-aria-components';\n\nimport { useFieldContext } from '../utilities/form-context';\nimport { classNames } from '../utilities/theme';\nimport { FormField, FormFieldLabel, FormFieldDescription, labelVariants, type FormFieldProps } from './form';\nimport { IcCheck, IcMinus } from './icons';\n\nconst disabledClasses = 'group-data-[disabled]/checkbox:cursor-not-allowed group-data-[disabled]/checkbox:opacity-50';\nconst invalidBorderClasses = 'group-data-[invalid]/checkbox:border-destructive';\nconst focusResetClasses = 'focus:outline-none focus-visible:outline-none';\nconst selectedPrimaryClasses = 'group-data-[selected]/checkbox:bg-primary';\n\nconst switchBaseClasses =\n 'relative shrink-0 h-6 w-11 rounded-full border border-input bg-surface-primary transition-colors duration-200';\nconst switchKnobClasses =\n 'absolute top-1/2 -translate-y-1/2 left-0.5 h-5 w-5 rounded-full bg-surface-secondary border border-input transition-transform duration-200';\n\nconst checkboxBaseClasses =\n 'flex shrink-0 items-center bg-surface-primary rounded-sm justify-center border border-input text-current ring-offset-surface-secondary';\n\nconst sizeClasses = {\n sm: 'size-icon',\n lg: 'size-input',\n};\n\nconst iconSizeClasses = {\n sm: 'size-3',\n lg: 'size-icon',\n};\nexport const CheckboxGroup = AriaCheckboxGroup;\ntype CheckboxProps = AriaCheckboxProps &\n FormFieldProps & {\n variant?: 'checkbox' | 'switch';\n size?: 'sm' | 'lg';\n };\nexport function Checkbox({\n className,\n label,\n description,\n errorMessage,\n requiredIndicator,\n variant = 'checkbox',\n size = 'sm',\n ...props\n}: Omit<CheckboxProps, 'children'>) {\n const generatedId = useId();\n const fieldId = props.id || generatedId;\n const isSwitch = variant === 'switch';\n const hasFormField = !!(label || description || errorMessage || requiredIndicator);\n const checkbox = (\n <AriaCheckbox\n className={composeRenderProps(className, className =>\n classNames(\n 'group/checkbox cursor-pointer relative focus-ring flex items-center gap-x-2 disabled-muted',\n labelVariants,\n className\n )\n )}\n id={fieldId}\n {...props}\n >\n {composeRenderProps(<></>, (_, renderProps) => {\n if (isSwitch) {\n return (\n <div\n className={classNames(\n switchBaseClasses,\n selectedPrimaryClasses,\n disabledClasses,\n invalidBorderClasses,\n 'group-data-[invalid]/checkbox:group-data-[selected]/checkbox:bg-destructive',\n focusResetClasses\n )}\n >\n <div\n className={classNames(\n switchKnobClasses,\n 'group-data-[selected]/checkbox:translate-x-4.5',\n disabledClasses,\n invalidBorderClasses\n )}\n />\n </div>\n );\n }\n\n return (\n <div\n className={classNames(\n checkboxBaseClasses,\n 'group-data-[indeterminate]/checkbox:bg-primary',\n selectedPrimaryClasses,\n 'group-data-[indeterminate]/checkbox:text-primary-foreground group-data-[selected]/checkbox:text-primary-foreground',\n disabledClasses,\n invalidBorderClasses,\n 'group-data-[invalid]/checkbox:group-data-[selected]/checkbox:bg-destructive group-data-[invalid]/checkbox:group-data-[selected]/checkbox:text-destructive-foreground',\n focusResetClasses,\n sizeClasses[size]\n )}\n >\n {renderProps.isIndeterminate && <IcMinus className={iconSizeClasses[size]} />}\n {!renderProps.isIndeterminate && renderProps.isSelected && (\n <IcCheck className={iconSizeClasses[size]} />\n )}\n </div>\n );\n })}\n </AriaCheckbox>\n );\n if (!hasFormField) return <div className=\"group flex\">{checkbox}</div>;\n return (\n <div className=\"group form-field\">\n <FormField {...{ errorMessage, htmlFor: fieldId }}>\n <div className=\"flex items-start gap-1\">\n {checkbox}\n <div className=\"flex flex-col gap-1\">\n {label && <FormFieldLabel htmlFor={fieldId}>{label}</FormFieldLabel>}\n {description && <FormFieldDescription>{description}</FormFieldDescription>}\n </div>\n </div>\n </FormField>\n </div>\n );\n}\n\nexport type TfCheckboxProps = Omit<React.ComponentProps<typeof Checkbox>, 'onChange' | 'onBlur' | 'isChecked'>;\nexport function TfCheckbox({ ...props }: TfCheckboxProps) {\n const field = useFieldContext<boolean>({ disabled: props.isDisabled });\n return (\n <Checkbox\n requiredIndicator={field.isRequired}\n isSelected={field.state.value}\n isDisabled={field.isSubmitting || props.isDisabled}\n onChange={() => field.handleChange(!field.state.value)}\n onBlur={field.handleBlur}\n {...props}\n />\n );\n}\n"],"mappings":"wcAcA,IAAM,EAAkB,8FAClB,EAAuB,mDACvB,EAAoB,gDACpB,EAAyB,4CAEzB,EACF,gHACE,EACF,6IAEE,EACF,yIAEE,EAAc,CAChB,GAAI,YACJ,GAAI,YACR,EAEM,EAAkB,CACpB,GAAI,SACJ,GAAI,WACR,EACa,EAAgB,EAM7B,SAAgB,EAAS,CACrB,YACA,QACA,cACA,eACA,oBACA,UAAU,WACV,OAAO,KACP,GAAG,GAC6B,CAChC,IAAM,EAAc,EAAM,EACpB,EAAU,EAAM,IAAM,EACtB,EAAW,IAAY,SACvB,EAAe,CAAC,EAAE,GAAS,GAAe,GAAgB,GAC1D,EACF,EAAC,EAAD,CACI,UAAW,EAAmB,EAAW,GACrC,EACI,6FACA,EACA,CACJ,CACJ,EACA,GAAI,EACJ,GAAI,EAEH,SAAA,EAAmB,EAAA,EAAA,CAAI,CAAA,GAAI,EAAG,IACvB,EAEI,EAAC,MAAD,CACI,UAAW,EACP,EACA,EACA,EACA,EACA,8EACA,CACJ,EAEA,SAAA,EAAC,MAAD,CACI,UAAW,EACP,EACA,iDACA,EACA,CACJ,CACH,CAAA,CACA,CAAA,EAKT,EAAC,MAAD,CACI,UAAW,EACP,EACA,iDACA,EACA,qHACA,EACA,EACA,uKACA,EACA,EAAY,EAChB,EAXJ,SAAA,CAaK,EAAY,iBAAmB,EAAC,EAAD,CAAS,UAAW,EAAgB,EAAQ,CAAA,EAC3E,CAAC,EAAY,iBAAmB,EAAY,YACzC,EAAC,EAAD,CAAS,UAAW,EAAgB,EAAQ,CAAA,CAE/C,GAEZ,CACS,CAAA,EAGlB,OADK,EAED,EAAC,MAAD,CAAK,UAAU,mBACX,SAAA,EAAC,EAAD,CAAiB,eAAc,QAAS,EACpC,SAAA,EAAC,MAAD,CAAK,UAAU,yBAAf,SAAA,CACK,EACD,EAAC,MAAD,CAAK,UAAU,sBAAf,SAAA,CACK,GAAS,EAAC,EAAD,CAAgB,QAAS,EAAU,SAAA,CAAsB,CAAA,EAClE,GAAe,EAAC,EAAD,CAAA,SAAuB,CAAkC,CAAA,CACxE,CACJ,CAAA,CAAA,GACE,CAAA,CACV,CAAA,EAZiB,EAAC,MAAD,CAAK,UAAU,aAAc,SAAA,CAAc,CAAA,CAczE,CAGA,SAAgB,EAAW,CAAE,GAAG,GAA0B,CACtD,IAAM,EAAQ,EAAyB,CAAE,SAAU,EAAM,UAAW,CAAC,EACrE,OACI,EAAC,EAAD,CACI,kBAAmB,EAAM,WACzB,WAAY,EAAM,MAAM,MACxB,WAAY,EAAM,cAAgB,EAAM,WACxC,aAAgB,EAAM,aAAa,CAAC,EAAM,MAAM,KAAK,EACrD,OAAQ,EAAM,WACd,GAAI,CACP,CAAA,CAET"}
|
|
@@ -5,4 +5,4 @@ export interface CodeBlockProps extends React.ComponentProps<'div'> {
|
|
|
5
5
|
copyText?: string;
|
|
6
6
|
variant?: 'inline' | 'block';
|
|
7
7
|
}
|
|
8
|
-
export declare function CodeBlock({ code, fileName, copyText, variant, className, ...props }: CodeBlockProps):
|
|
8
|
+
export declare function CodeBlock({ code, fileName, copyText, variant, className, ...props }: CodeBlockProps): React.JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
2
|
-
//# sourceMappingURL=code-block.js.map
|
|
1
|
+
import{classNames as e}from"../utilities/theme.js";import{CopyButton as t}from"./copy-button.js";import"react";import{jsx as n,jsxs as r}from"react/jsx-runtime";function i({code:i,fileName:a,copyText:o,variant:s=`block`,className:c,...l}){let u=!!a||s===`block`&&!!o;return r(`div`,{className:e(`rounded-md border border-border bg-surface-primary text-sm max-h-[90vh]`,c),...l,children:[u&&r(`div`,{className:e(`flex justify-between text-muted body-sm p-icon border-b border-border`),children:[n(`div`,{className:`min-w-0 h-full flex items-center`,children:a}),s===`block`&&o&&n(`div`,{className:`flex items-start`,children:n(t,{label:null,textToCopy:o,variant:`ghost`,size:`icon-sm`,"aria-label":`Copy code`})})]}),r(`div`,{className:`relative flex items-center`,children:[s===`inline`&&o&&n(`div`,{className:`absolute top-0 right-0 rounded-md flex items-start pt-icon pl-14 pr-icon bg-gradient-to-r from-transparent via-surface-primary to-surface-primary`,children:n(t,{label:null,textToCopy:o,variant:`ghost`,size:`icon-sm`,"aria-label":`Copy code`})}),n(`pre`,{className:e(`flex p-icon overflow-auto w-full max-h-96`,s===`inline`&&o&&`pr-20`),children:n(`code`,{dangerouslySetInnerHTML:{__html:i}})})]})]})}export{i as CodeBlock};
|
|
2
|
+
//# sourceMappingURL=code-block.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-block.js","sources":["../../lib/components/code-block.tsx"],"sourcesContent":["import React from 'react';\nimport { classNames } from '../utilities/theme';\nimport { CopyButton } from './copy-button';\n\nexport interface CodeBlockProps extends React.ComponentProps<'div'> {\n code: string;\n fileName?: string | React.ReactNode;\n copyText?: string;\n variant?: 'inline' | 'block';\n}\n\nexport function CodeBlock({ code, fileName, copyText, variant = 'block', className, ...props }: CodeBlockProps) {\n const showHeader = Boolean(fileName) || (variant === 'block' && Boolean(copyText));\n\n return (\n <div\n className={classNames('rounded-md border border-border bg-surface-primary text-sm max-h-[90vh]', className)}\n {...props}\n >\n {showHeader && (\n <div className={classNames('flex justify-between text-muted body-sm p-icon border-b border-border')}>\n <div className=\"min-w-0 h-full flex items-center\">{fileName}</div>\n {variant === 'block' && copyText && (\n <div className=\"flex items-start\">\n <CopyButton\n label={null}\n textToCopy={copyText}\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label=\"Copy code\"\n />\n </div>\n )}\n </div>\n )}\n\n <div className=\"relative flex items-center\">\n {variant === 'inline' && copyText && (\n <div className=\"absolute top-0 right-0 rounded-md flex items-start pt-icon pl-14 pr-icon bg-gradient-to-r from-transparent via-surface-primary to-surface-primary\">\n <CopyButton\n label={null}\n textToCopy={copyText}\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label=\"Copy code\"\n />\n </div>\n )}\n <pre\n className={classNames(\n 'flex p-icon overflow-auto w-full max-h-96',\n variant === 'inline' && copyText && 'pr-20'\n )}\n >\n <code dangerouslySetInnerHTML={{ __html: code }} />\n </pre>\n </div>\n </div>\n );\n}\n"],"
|
|
1
|
+
{"version":3,"file":"code-block.js","names":[],"sources":["../../lib/components/code-block.tsx"],"sourcesContent":["import React from 'react';\nimport { classNames } from '../utilities/theme';\nimport { CopyButton } from './copy-button';\n\nexport interface CodeBlockProps extends React.ComponentProps<'div'> {\n code: string;\n fileName?: string | React.ReactNode;\n copyText?: string;\n variant?: 'inline' | 'block';\n}\n\nexport function CodeBlock({ code, fileName, copyText, variant = 'block', className, ...props }: CodeBlockProps) {\n const showHeader = Boolean(fileName) || (variant === 'block' && Boolean(copyText));\n\n return (\n <div\n className={classNames('rounded-md border border-border bg-surface-primary text-sm max-h-[90vh]', className)}\n {...props}\n >\n {showHeader && (\n <div className={classNames('flex justify-between text-muted body-sm p-icon border-b border-border')}>\n <div className=\"min-w-0 h-full flex items-center\">{fileName}</div>\n {variant === 'block' && copyText && (\n <div className=\"flex items-start\">\n <CopyButton\n label={null}\n textToCopy={copyText}\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label=\"Copy code\"\n />\n </div>\n )}\n </div>\n )}\n\n <div className=\"relative flex items-center\">\n {variant === 'inline' && copyText && (\n <div className=\"absolute top-0 right-0 rounded-md flex items-start pt-icon pl-14 pr-icon bg-gradient-to-r from-transparent via-surface-primary to-surface-primary\">\n <CopyButton\n label={null}\n textToCopy={copyText}\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label=\"Copy code\"\n />\n </div>\n )}\n <pre\n className={classNames(\n 'flex p-icon overflow-auto w-full max-h-96',\n variant === 'inline' && copyText && 'pr-20'\n )}\n >\n <code dangerouslySetInnerHTML={{ __html: code }} />\n </pre>\n </div>\n </div>\n );\n}\n"],"mappings":"iKAWA,SAAgB,EAAU,CAAE,OAAM,WAAU,WAAU,UAAU,QAAS,YAAW,GAAG,GAAyB,CAC5G,IAAM,EAAa,EAAQ,GAAc,IAAY,SAAW,EAAQ,EAExE,OACI,EAAC,MAAD,CACI,UAAW,EAAW,0EAA2E,CAAS,EAC1G,GAAI,EAFR,SAAA,CAIK,GACG,EAAC,MAAD,CAAK,UAAW,EAAW,uEAAuE,EAAlG,SAAA,CACI,EAAC,MAAD,CAAK,UAAU,mCAAoC,SAAA,CAAc,CAAA,EAChE,IAAY,SAAW,GACpB,EAAC,MAAD,CAAK,UAAU,mBACX,SAAA,EAAC,EAAD,CACI,MAAO,KACP,WAAY,EACZ,QAAQ,QACR,KAAK,UACL,aAAW,WACd,CAAA,CACA,CAAA,CAER,CAGT,CAAA,EAAA,EAAC,MAAD,CAAK,UAAU,6BAAf,SAAA,CACK,IAAY,UAAY,GACrB,EAAC,MAAD,CAAK,UAAU,oJACX,SAAA,EAAC,EAAD,CACI,MAAO,KACP,WAAY,EACZ,QAAQ,QACR,KAAK,UACL,aAAW,WACd,CAAA,CACA,CAAA,EAET,EAAC,MAAD,CACI,UAAW,EACP,4CACA,IAAY,UAAY,GAAY,OACxC,EAEA,SAAA,EAAC,OAAD,CAAM,wBAAyB,CAAE,OAAQ,CAAK,CAAI,CAAA,CACjD,CAAA,CACJ,CACJ,CAAA,CAAA,GAEb"}
|
|
@@ -4,4 +4,4 @@ export type CopyButtonProps = Omit<ButtonProps, 'children' | 'ref' | 'active'> &
|
|
|
4
4
|
label: ReactNode;
|
|
5
5
|
textToCopy: string | number | Record<string, unknown>;
|
|
6
6
|
};
|
|
7
|
-
export declare function CopyButton({ label, textToCopy, className, ...props }: CopyButtonProps): import("react
|
|
7
|
+
export declare function CopyButton({ label, textToCopy, className, ...props }: CopyButtonProps): import("react").JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";import{
|
|
2
|
-
//# sourceMappingURL=copy-button.js.map
|
|
1
|
+
"use client";import{classNames as e}from"../utilities/theme.js";import{c as t,p as n}from"../icons.js";import{Button as r}from"./button.js";import{toast as i}from"./toast.js";import{useState as a}from"react";import{jsx as o,jsxs as s}from"react/jsx-runtime";function c({label:c,textToCopy:l,className:u,...d}){let[f,p]=a(!1),m=async()=>{if(l)try{let e=typeof l==`object`?JSON.stringify(l):String(l);await navigator.clipboard.writeText(e),i({title:`Copied to clipboard`,variant:`success`}),p(!0),setTimeout(()=>{p(!1)},3e3)}catch{i({title:`Failed to copy to clipboard`,variant:`destructive`})}};return s(r,{...d,onPress:m,className:e(`gap-2`,u),children:[f?o(t,{className:`text-success`}):o(n,{}),c]})}export{c as CopyButton};
|
|
2
|
+
//# sourceMappingURL=copy-button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy-button.js","sources":["../../lib/components/copy-button.tsx"],"sourcesContent":["'use client';\n\nimport { useState, type ReactNode } from 'react';\nimport { Button, type ButtonProps } from './button';\nimport { IcCheck, IcCopy } from './icons';\nimport { toast } from './toast';\nimport { classNames } from '../utilities/theme';\n\nexport type CopyButtonProps = Omit<ButtonProps, 'children' | 'ref' | 'active'> & {\n label: ReactNode;\n textToCopy: string | number | Record<string, unknown>;\n};\n\nexport function CopyButton({ label, textToCopy, className, ...props }: CopyButtonProps) {\n const [isCopied, setIsCopied] = useState(false);\n const handlePress = async () => {\n if (!textToCopy) return;\n try {\n const text = typeof textToCopy === 'object' ? JSON.stringify(textToCopy) : String(textToCopy);\n await navigator.clipboard.writeText(text);\n toast({\n title: 'Copied to clipboard',\n variant: 'success',\n });\n setIsCopied(true);\n setTimeout(() => {\n setIsCopied(false);\n }, 3000);\n } catch {\n toast({\n title: 'Failed to copy to clipboard',\n variant: 'destructive',\n });\n }\n };\n\n return (\n <Button {...props} onPress={handlePress} className={classNames('gap-2', className)}>\n {isCopied ? <IcCheck className=\"text-success\" /> : <IcCopy />}\n {label}\n </Button>\n );\n}\n"],"
|
|
1
|
+
{"version":3,"file":"copy-button.js","names":[],"sources":["../../lib/components/copy-button.tsx"],"sourcesContent":["'use client';\n\nimport { useState, type ReactNode } from 'react';\nimport { Button, type ButtonProps } from './button';\nimport { IcCheck, IcCopy } from './icons';\nimport { toast } from './toast';\nimport { classNames } from '../utilities/theme';\n\nexport type CopyButtonProps = Omit<ButtonProps, 'children' | 'ref' | 'active'> & {\n label: ReactNode;\n textToCopy: string | number | Record<string, unknown>;\n};\n\nexport function CopyButton({ label, textToCopy, className, ...props }: CopyButtonProps) {\n const [isCopied, setIsCopied] = useState(false);\n const handlePress = async () => {\n if (!textToCopy) return;\n try {\n const text = typeof textToCopy === 'object' ? JSON.stringify(textToCopy) : String(textToCopy);\n await navigator.clipboard.writeText(text);\n toast({\n title: 'Copied to clipboard',\n variant: 'success',\n });\n setIsCopied(true);\n setTimeout(() => {\n setIsCopied(false);\n }, 3000);\n } catch {\n toast({\n title: 'Failed to copy to clipboard',\n variant: 'destructive',\n });\n }\n };\n\n return (\n <Button {...props} onPress={handlePress} className={classNames('gap-2', className)}>\n {isCopied ? <IcCheck className=\"text-success\" /> : <IcCopy />}\n {label}\n </Button>\n );\n}\n"],"mappings":"kQAaA,SAAgB,EAAW,CAAE,QAAO,aAAY,YAAW,GAAG,GAA0B,CACpF,GAAM,CAAC,EAAU,GAAe,EAAS,EAAK,EACxC,EAAc,SAAY,CACvB,KACL,GAAI,CACA,IAAM,EAAO,OAAO,GAAe,SAAW,KAAK,UAAU,CAAU,EAAI,OAAO,CAAU,EAC5F,MAAM,UAAU,UAAU,UAAU,CAAI,EACxC,EAAM,CACF,MAAO,sBACP,QAAS,SACb,CAAC,EACD,EAAY,EAAI,EAChB,eAAiB,CACb,EAAY,EAAK,CACrB,EAAG,GAAI,CACX,MAAQ,CACJ,EAAM,CACF,MAAO,8BACP,QAAS,aACb,CAAC,CACL,CACJ,EAEA,OACI,EAAC,EAAD,CAAQ,GAAI,EAAO,QAAS,EAAa,UAAW,EAAW,QAAS,CAAS,EAAjF,SAAA,CACK,EAAW,EAAC,EAAD,CAAS,UAAU,cAAgB,CAAA,EAAI,EAAC,EAAD,CAAS,CAAA,EAC3D,CACG,GAEhB"}
|
|
@@ -65,5 +65,5 @@ export type FiltersConfig<TOperation extends keyof operations> = [keyof ApiFilte
|
|
|
65
65
|
export declare function DataTableFilter({ className, previewFilters, ...props }: React.ComponentProps<'section'> & {
|
|
66
66
|
/** Keys from filterConfig to show as filter chips on mount, not applied until the user edits them. */
|
|
67
67
|
previewFilters?: string[];
|
|
68
|
-
}): import("react
|
|
68
|
+
}): import("react").JSX.Element;
|
|
69
69
|
export {};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import"
|
|
2
|
-
//# sourceMappingURL=data-table-filter.js.map
|
|
1
|
+
import"../utilities/date.js";import"../utilities/use-mobile.js";import"./dialog.js";import{n as e,r as t,t as n}from"../data-table-filter.js";export{n as COMPARISON_OPERATOR_LABELS,e as DataTableFilter,t as FILTER_COMPARISON_OPERATORS};
|
|
@@ -122,11 +122,6 @@ export declare function useDataTableState<T extends object, TOperation extends k
|
|
|
122
122
|
isStale: boolean;
|
|
123
123
|
isEnabled: boolean;
|
|
124
124
|
fetchStatus: import('@tanstack/react-query').FetchStatus;
|
|
125
|
-
promise: Promise<import('@tanstack/react-query').InfiniteData<{
|
|
126
|
-
data: T[];
|
|
127
|
-
total: number;
|
|
128
|
-
nextPage: number;
|
|
129
|
-
}, unknown>>;
|
|
130
125
|
} | {
|
|
131
126
|
data: {
|
|
132
127
|
data: T[];
|
|
@@ -176,11 +171,6 @@ export declare function useDataTableState<T extends object, TOperation extends k
|
|
|
176
171
|
isStale: boolean;
|
|
177
172
|
isEnabled: boolean;
|
|
178
173
|
fetchStatus: import('@tanstack/react-query').FetchStatus;
|
|
179
|
-
promise: Promise<import('@tanstack/react-query').InfiniteData<{
|
|
180
|
-
data: T[];
|
|
181
|
-
total: number;
|
|
182
|
-
nextPage: number;
|
|
183
|
-
}, unknown>>;
|
|
184
174
|
} | {
|
|
185
175
|
data: {
|
|
186
176
|
data: T[];
|
|
@@ -230,11 +220,6 @@ export declare function useDataTableState<T extends object, TOperation extends k
|
|
|
230
220
|
isStale: boolean;
|
|
231
221
|
isEnabled: boolean;
|
|
232
222
|
fetchStatus: import('@tanstack/react-query').FetchStatus;
|
|
233
|
-
promise: Promise<import('@tanstack/react-query').InfiniteData<{
|
|
234
|
-
data: T[];
|
|
235
|
-
total: number;
|
|
236
|
-
nextPage: number;
|
|
237
|
-
}, unknown>>;
|
|
238
223
|
} | {
|
|
239
224
|
data: {
|
|
240
225
|
data: T[];
|
|
@@ -284,11 +269,6 @@ export declare function useDataTableState<T extends object, TOperation extends k
|
|
|
284
269
|
isStale: boolean;
|
|
285
270
|
isEnabled: boolean;
|
|
286
271
|
fetchStatus: import('@tanstack/react-query').FetchStatus;
|
|
287
|
-
promise: Promise<import('@tanstack/react-query').InfiniteData<{
|
|
288
|
-
data: T[];
|
|
289
|
-
total: number;
|
|
290
|
-
nextPage: number;
|
|
291
|
-
}, unknown>>;
|
|
292
272
|
} | {
|
|
293
273
|
data: {
|
|
294
274
|
data: T[];
|
|
@@ -338,11 +318,6 @@ export declare function useDataTableState<T extends object, TOperation extends k
|
|
|
338
318
|
isStale: boolean;
|
|
339
319
|
isEnabled: boolean;
|
|
340
320
|
fetchStatus: import('@tanstack/react-query').FetchStatus;
|
|
341
|
-
promise: Promise<import('@tanstack/react-query').InfiniteData<{
|
|
342
|
-
data: T[];
|
|
343
|
-
total: number;
|
|
344
|
-
nextPage: number;
|
|
345
|
-
}, unknown>>;
|
|
346
321
|
};
|
|
347
322
|
readonly setSearchQuery: React.Dispatch<React.SetStateAction<string>>;
|
|
348
323
|
readonly searchQuery: string;
|
|
@@ -354,8 +329,8 @@ export declare function useDataTableState<T extends object, TOperation extends k
|
|
|
354
329
|
readonly tableActions: TableAction<T>[];
|
|
355
330
|
readonly pathParameters: NoInfer<ApiPathParameters<TOperation>> | undefined;
|
|
356
331
|
readonly queryParameters: NoInfer<Partial<ApiFilter<TOperation>>> | undefined;
|
|
357
|
-
readonly viewMode: "
|
|
358
|
-
readonly setViewMode: React.Dispatch<React.SetStateAction<"
|
|
332
|
+
readonly viewMode: "table" | "card";
|
|
333
|
+
readonly setViewMode: React.Dispatch<React.SetStateAction<"table" | "card">>;
|
|
359
334
|
readonly Card: CardRenderer<T> | undefined;
|
|
360
335
|
readonly allowSelection: boolean;
|
|
361
336
|
readonly allowToolbar: boolean;
|
|
@@ -368,7 +343,7 @@ export declare function useDataTableState<T extends object, TOperation extends k
|
|
|
368
343
|
readonly disableTableView: boolean | undefined;
|
|
369
344
|
readonly hideViewToggle: boolean | undefined;
|
|
370
345
|
readonly onRowNavigate: ((row: T) => void) | undefined;
|
|
371
|
-
readonly resourceName: "access-token" | "account" | "activation" | "activation-log" | "
|
|
346
|
+
readonly resourceName: "role" | "address" | "access-token" | "account" | "activation" | "activation-log" | "admin-role" | "audit-log" | "automated-email" | "automated-email-event-log" | "card" | "entitlement-set" | "event-log" | "feature-entitlement" | "feature-flag" | "feature" | "invoice" | "license" | "license-template" | "maintenance-policy" | "organization" | "plan" | "product" | "product-version" | "profile" | "release" | "release-channel" | "release-file" | "release-platform" | "role-claim" | "saml-configuration" | "segment" | "sending-domain" | "stat" | "tag" | "trial" | "trial-activation" | "trial-policy" | "user" | "user-group" | "webhook" | "webhook-event-log" | "webhook-event" | "reseller" | "oidc-configuration" | "tenant-database-cluster" | "team-member" | undefined;
|
|
372
347
|
};
|
|
373
348
|
export declare const DataTableContext: React.Context<{
|
|
374
349
|
readonly tableState: DataTableState;
|
|
@@ -442,11 +417,6 @@ export declare const DataTableContext: React.Context<{
|
|
|
442
417
|
isStale: boolean;
|
|
443
418
|
isEnabled: boolean;
|
|
444
419
|
fetchStatus: import('@tanstack/react-query').FetchStatus;
|
|
445
|
-
promise: Promise<import('@tanstack/react-query').InfiniteData<{
|
|
446
|
-
data: object[];
|
|
447
|
-
total: number;
|
|
448
|
-
nextPage: number;
|
|
449
|
-
}, unknown>>;
|
|
450
420
|
} | {
|
|
451
421
|
data: {
|
|
452
422
|
data: object[];
|
|
@@ -496,11 +466,6 @@ export declare const DataTableContext: React.Context<{
|
|
|
496
466
|
isStale: boolean;
|
|
497
467
|
isEnabled: boolean;
|
|
498
468
|
fetchStatus: import('@tanstack/react-query').FetchStatus;
|
|
499
|
-
promise: Promise<import('@tanstack/react-query').InfiniteData<{
|
|
500
|
-
data: object[];
|
|
501
|
-
total: number;
|
|
502
|
-
nextPage: number;
|
|
503
|
-
}, unknown>>;
|
|
504
469
|
} | {
|
|
505
470
|
data: {
|
|
506
471
|
data: object[];
|
|
@@ -550,11 +515,6 @@ export declare const DataTableContext: React.Context<{
|
|
|
550
515
|
isStale: boolean;
|
|
551
516
|
isEnabled: boolean;
|
|
552
517
|
fetchStatus: import('@tanstack/react-query').FetchStatus;
|
|
553
|
-
promise: Promise<import('@tanstack/react-query').InfiniteData<{
|
|
554
|
-
data: object[];
|
|
555
|
-
total: number;
|
|
556
|
-
nextPage: number;
|
|
557
|
-
}, unknown>>;
|
|
558
518
|
} | {
|
|
559
519
|
data: {
|
|
560
520
|
data: object[];
|
|
@@ -604,11 +564,6 @@ export declare const DataTableContext: React.Context<{
|
|
|
604
564
|
isStale: boolean;
|
|
605
565
|
isEnabled: boolean;
|
|
606
566
|
fetchStatus: import('@tanstack/react-query').FetchStatus;
|
|
607
|
-
promise: Promise<import('@tanstack/react-query').InfiniteData<{
|
|
608
|
-
data: object[];
|
|
609
|
-
total: number;
|
|
610
|
-
nextPage: number;
|
|
611
|
-
}, unknown>>;
|
|
612
567
|
} | {
|
|
613
568
|
data: {
|
|
614
569
|
data: object[];
|
|
@@ -658,11 +613,6 @@ export declare const DataTableContext: React.Context<{
|
|
|
658
613
|
isStale: boolean;
|
|
659
614
|
isEnabled: boolean;
|
|
660
615
|
fetchStatus: import('@tanstack/react-query').FetchStatus;
|
|
661
|
-
promise: Promise<import('@tanstack/react-query').InfiniteData<{
|
|
662
|
-
data: object[];
|
|
663
|
-
total: number;
|
|
664
|
-
nextPage: number;
|
|
665
|
-
}, unknown>>;
|
|
666
616
|
};
|
|
667
617
|
readonly setSearchQuery: React.Dispatch<React.SetStateAction<string>>;
|
|
668
618
|
readonly searchQuery: string;
|
|
@@ -1260,8 +1210,8 @@ export declare const DataTableContext: React.Context<{
|
|
|
1260
1210
|
id: string;
|
|
1261
1211
|
} | undefined> | undefined;
|
|
1262
1212
|
readonly queryParameters: NoInfer<Partial<ApiFilter<keyof operations>>> | undefined;
|
|
1263
|
-
readonly viewMode: "
|
|
1264
|
-
readonly setViewMode: React.Dispatch<React.SetStateAction<"
|
|
1213
|
+
readonly viewMode: "table" | "card";
|
|
1214
|
+
readonly setViewMode: React.Dispatch<React.SetStateAction<"table" | "card">>;
|
|
1265
1215
|
readonly Card: CardRenderer<object> | undefined;
|
|
1266
1216
|
readonly allowSelection: boolean;
|
|
1267
1217
|
readonly allowToolbar: boolean;
|
|
@@ -1274,7 +1224,7 @@ export declare const DataTableContext: React.Context<{
|
|
|
1274
1224
|
readonly disableTableView: boolean | undefined;
|
|
1275
1225
|
readonly hideViewToggle: boolean | undefined;
|
|
1276
1226
|
readonly onRowNavigate: ((row: object) => void) | undefined;
|
|
1277
|
-
readonly resourceName: "access-token" | "account" | "activation" | "activation-log" | "
|
|
1227
|
+
readonly resourceName: "role" | "address" | "access-token" | "account" | "activation" | "activation-log" | "admin-role" | "audit-log" | "automated-email" | "automated-email-event-log" | "card" | "entitlement-set" | "event-log" | "feature-entitlement" | "feature-flag" | "feature" | "invoice" | "license" | "license-template" | "maintenance-policy" | "organization" | "plan" | "product" | "product-version" | "profile" | "release" | "release-channel" | "release-file" | "release-platform" | "role-claim" | "saml-configuration" | "segment" | "sending-domain" | "stat" | "tag" | "trial" | "trial-activation" | "trial-policy" | "user" | "user-group" | "webhook" | "webhook-event-log" | "webhook-event" | "reseller" | "oidc-configuration" | "tenant-database-cluster" | "team-member" | undefined;
|
|
1278
1228
|
} | null>;
|
|
1279
1229
|
export declare function useDataTable(): {
|
|
1280
1230
|
readonly tableState: DataTableState;
|
|
@@ -1348,11 +1298,6 @@ export declare function useDataTable(): {
|
|
|
1348
1298
|
isStale: boolean;
|
|
1349
1299
|
isEnabled: boolean;
|
|
1350
1300
|
fetchStatus: import('@tanstack/react-query').FetchStatus;
|
|
1351
|
-
promise: Promise<import('@tanstack/react-query').InfiniteData<{
|
|
1352
|
-
data: object[];
|
|
1353
|
-
total: number;
|
|
1354
|
-
nextPage: number;
|
|
1355
|
-
}, unknown>>;
|
|
1356
1301
|
} | {
|
|
1357
1302
|
data: {
|
|
1358
1303
|
data: object[];
|
|
@@ -1402,11 +1347,6 @@ export declare function useDataTable(): {
|
|
|
1402
1347
|
isStale: boolean;
|
|
1403
1348
|
isEnabled: boolean;
|
|
1404
1349
|
fetchStatus: import('@tanstack/react-query').FetchStatus;
|
|
1405
|
-
promise: Promise<import('@tanstack/react-query').InfiniteData<{
|
|
1406
|
-
data: object[];
|
|
1407
|
-
total: number;
|
|
1408
|
-
nextPage: number;
|
|
1409
|
-
}, unknown>>;
|
|
1410
1350
|
} | {
|
|
1411
1351
|
data: {
|
|
1412
1352
|
data: object[];
|
|
@@ -1456,11 +1396,6 @@ export declare function useDataTable(): {
|
|
|
1456
1396
|
isStale: boolean;
|
|
1457
1397
|
isEnabled: boolean;
|
|
1458
1398
|
fetchStatus: import('@tanstack/react-query').FetchStatus;
|
|
1459
|
-
promise: Promise<import('@tanstack/react-query').InfiniteData<{
|
|
1460
|
-
data: object[];
|
|
1461
|
-
total: number;
|
|
1462
|
-
nextPage: number;
|
|
1463
|
-
}, unknown>>;
|
|
1464
1399
|
} | {
|
|
1465
1400
|
data: {
|
|
1466
1401
|
data: object[];
|
|
@@ -1510,11 +1445,6 @@ export declare function useDataTable(): {
|
|
|
1510
1445
|
isStale: boolean;
|
|
1511
1446
|
isEnabled: boolean;
|
|
1512
1447
|
fetchStatus: import('@tanstack/react-query').FetchStatus;
|
|
1513
|
-
promise: Promise<import('@tanstack/react-query').InfiniteData<{
|
|
1514
|
-
data: object[];
|
|
1515
|
-
total: number;
|
|
1516
|
-
nextPage: number;
|
|
1517
|
-
}, unknown>>;
|
|
1518
1448
|
} | {
|
|
1519
1449
|
data: {
|
|
1520
1450
|
data: object[];
|
|
@@ -1564,11 +1494,6 @@ export declare function useDataTable(): {
|
|
|
1564
1494
|
isStale: boolean;
|
|
1565
1495
|
isEnabled: boolean;
|
|
1566
1496
|
fetchStatus: import('@tanstack/react-query').FetchStatus;
|
|
1567
|
-
promise: Promise<import('@tanstack/react-query').InfiniteData<{
|
|
1568
|
-
data: object[];
|
|
1569
|
-
total: number;
|
|
1570
|
-
nextPage: number;
|
|
1571
|
-
}, unknown>>;
|
|
1572
1497
|
};
|
|
1573
1498
|
readonly setSearchQuery: React.Dispatch<React.SetStateAction<string>>;
|
|
1574
1499
|
readonly searchQuery: string;
|
|
@@ -2166,8 +2091,8 @@ export declare function useDataTable(): {
|
|
|
2166
2091
|
id: string;
|
|
2167
2092
|
} | undefined> | undefined;
|
|
2168
2093
|
readonly queryParameters: NoInfer<Partial<ApiFilter<keyof operations>>> | undefined;
|
|
2169
|
-
readonly viewMode: "
|
|
2170
|
-
readonly setViewMode: React.Dispatch<React.SetStateAction<"
|
|
2094
|
+
readonly viewMode: "table" | "card";
|
|
2095
|
+
readonly setViewMode: React.Dispatch<React.SetStateAction<"table" | "card">>;
|
|
2171
2096
|
readonly Card: CardRenderer<object> | undefined;
|
|
2172
2097
|
readonly allowSelection: boolean;
|
|
2173
2098
|
readonly allowToolbar: boolean;
|
|
@@ -2180,15 +2105,15 @@ export declare function useDataTable(): {
|
|
|
2180
2105
|
readonly disableTableView: boolean | undefined;
|
|
2181
2106
|
readonly hideViewToggle: boolean | undefined;
|
|
2182
2107
|
readonly onRowNavigate: ((row: object) => void) | undefined;
|
|
2183
|
-
readonly resourceName: "access-token" | "account" | "activation" | "activation-log" | "
|
|
2108
|
+
readonly resourceName: "role" | "address" | "access-token" | "account" | "activation" | "activation-log" | "admin-role" | "audit-log" | "automated-email" | "automated-email-event-log" | "card" | "entitlement-set" | "event-log" | "feature-entitlement" | "feature-flag" | "feature" | "invoice" | "license" | "license-template" | "maintenance-policy" | "organization" | "plan" | "product" | "product-version" | "profile" | "release" | "release-channel" | "release-file" | "release-platform" | "role-claim" | "saml-configuration" | "segment" | "sending-domain" | "stat" | "tag" | "trial" | "trial-activation" | "trial-policy" | "user" | "user-group" | "webhook" | "webhook-event-log" | "webhook-event" | "reseller" | "oidc-configuration" | "tenant-database-cluster" | "team-member" | undefined;
|
|
2184
2109
|
};
|
|
2185
2110
|
export declare function DataTableProvider<T extends object, TOperation extends keyof operations>({ children, ...props }: {
|
|
2186
2111
|
children: React.ReactNode;
|
|
2187
|
-
} & ReturnType<typeof useDataTableState<T, TOperation>>):
|
|
2112
|
+
} & ReturnType<typeof useDataTableState<T, TOperation>>): React.JSX.Element;
|
|
2188
2113
|
export type DataTableProps = React.ComponentProps<'section'> & {
|
|
2189
2114
|
cardGridClassName?: string;
|
|
2190
2115
|
};
|
|
2191
|
-
export declare function DataTable({ className, cardGridClassName, ...props }: DataTableProps):
|
|
2116
|
+
export declare function DataTable({ className, cardGridClassName, ...props }: DataTableProps): React.JSX.Element;
|
|
2192
2117
|
export type CardSelectionProps = {
|
|
2193
2118
|
isSelected: boolean;
|
|
2194
2119
|
onToggle: () => void;
|
|
@@ -2207,7 +2132,7 @@ type ActionPressContext = {
|
|
|
2207
2132
|
event?: PressEvent;
|
|
2208
2133
|
openDialog: (c: React.ReactNode) => void;
|
|
2209
2134
|
closeDialog: () => void;
|
|
2210
|
-
activeFilters
|
|
2135
|
+
activeFilters?: Record<string, unknown>;
|
|
2211
2136
|
};
|
|
2212
2137
|
export type NoResourceAction = ActionBase & {
|
|
2213
2138
|
resourceType: 'none';
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
"use client";import{jsx as t,Fragment as M,jsxs as m}from"react/jsx-runtime";import{parseAbsolute as Y,getLocalTimeZone as J}from"@internationalized/date";import{createContext as et,useContext as tt,useState as D,useMemo as W,useEffect as ie,useRef as Te,Fragment as rt}from"react";import{Pressable as De}from"react-aria-components";import{Button as x}from"./button.js";import{useSensors as nt,useSensor as Se,PointerSensor as at,KeyboardSensor as it,DndContext as ot,closestCenter as st,DragOverlay as lt}from"@dnd-kit/core";import{sortableKeyboardCoordinates as ct,SortableContext as ut,verticalListSortingStrategy as dt,arrayMove as mt,useSortable as pt}from"@dnd-kit/sortable";import{CSS as gt}from"@dnd-kit/utilities";import{useQuery as ft,useInfiniteQuery as bt}from"@tanstack/react-query";import{createColumnHelper as Oe,useReactTable as ht,getCoreRowModel as yt,flexRender as ne}from"@tanstack/react-table";import{useLocalStorage as ee}from"@uidotdev/usehooks";import{merge as vt}from"lodash-es";import{Badge as xe}from"./badge.js";import{DatePicker as te}from"./date-picker.js";import{EasyMenu as _,MenuItem as O,MenuTrigger as St,MenuPopover as xt,MenuHeader as wt,Menu as Nt}from"./menu.js";import{MultiSelect as Ct}from"./multi-select.js";import{NumberField as Pt}from"./numberfield.js";import{PopoverTrigger as Ft,Popover as It}from"./popover.js";import{SelectTrigger as At}from"./select.js";import{TextField as Tt}from"./textfield.js";import{formatDate as B}from"../utilities/date.js";import{useProjectName as oe,useResourceFormatter as $,ALL_OS as Dt}from"../utilities/resources.js";import{classNames as w}from"../utilities/theme.js";import{ControlledDialogProvider as Ot,useControlledDialog as se,DialogHeader as Mt,DialogTitle as zt,DialogBody as Rt,DialogFooter as jt}from"./dialog.js";import{IcRefresh as Lt,IcMenu as _t,IcLayoutGrid as $t,IcColumns as Et,IcGrip as qt,IcFirst as Vt,IcLeft as kt,IcRight as Ht,IcLast as Bt,IcMoreVertical as Kt,IcInfo as Qt,IcSortAsc as Gt,IcSortDesc as Ut,IcSortNone as Zt,IcCheck as re,IcMinus as Xt,IcAccount as Yt,IcLicense as Jt,IcDate as Wt,IcFile as er,IcFilter as le,IcClose as Me}from"./icons.js";import{MultipleIdSearchInput as tr}from"./id-search.js";import{useIsMobile as K}from"../utilities/use-mobile.js";import{Loader as ze}from"./loader.js";import{SearchField as rr}from"./searchfield.js";import{Table as nr,TableHeader as ar,TableRow as we,TableHead as ir,TableBody as or,TableCell as sr}from"./table.js";import{CountryName as lr}from"../utilities/countries.js";import{Duration as cr}from"../utilities/duration.js";import{formatDays as ur,formatFilesize as dr,formatNumber as mr}from"../utilities/numbers.js";import{pluralizeTimes as pr}from"../utilities/string.js";import{Checkbox as Ne}from"./checkbox.js";import{TooltipTrigger as gr,Tooltip as fr}from"./tooltip.js";import{getSubscriptionStartTriggerLabel as br,ALL_LICENSE_TYPES as hr}from"./select-options.js";import{useCtxClient as yr}from"../utilities/ctx-client.js";import{ProgressBar as vr}from"./progress-bar.js";import{TagGroup as Sr,Tag as xr}from"./tag-group.js";import"class-variance-authority";import"clsx";import"@icons-pack/react-simple-icons";import"./calendar.js";import"./form.js";import"./card.js";import"./datefield.js";import"../utilities/form.js";import"../utilities/form-context.js";import"@tanstack/react-form";import"./list-box.js";import"./kbd.js";import"../utilities/empty-option.js";function wr(e){return e?e.desc?`-${e.id}`:`+${e.id}`:"-createdAt"}const Re=Oe(),Nr=[Re.accessor("checkbox",{header:({table:e})=>t(Ne,{isIndeterminate:e.getIsSomeRowsSelected()&&!e.getIsAllPageRowsSelected(),isSelected:e.getIsAllPageRowsSelected()||e.getIsSomePageRowsSelected(),onChange:()=>e.toggleAllPageRowsSelected(),"aria-label":"Select all",size:"sm"}),cell:({row:e})=>t(Ne,{isSelected:e.getIsSelected(),onChange:()=>e.toggleSelected(),"aria-label":"Select row",size:"sm"}),enableSorting:!1,enableHiding:!1})],I="TableActions";function Cr(e){return e.length===0?[]:[Re.accessor(I,{header:"Actions",id:I,enableHiding:!1,cell:({row:n})=>t(Rr,{label:t(Kt,{className:"text-icon-primary"}),data:n.original,items:e}),enableSorting:!1})]}function Hn(){return Oe()}function Bn({path:e,resourceName:n,pathParameters:r,queryParameters:o,columns:l,filterConfig:i,columnsToHideByDefault:a={},allowSelection:d=!1,allowToolbar:c=!0,initialFilters:s=[],previewFilters:p,tableActions:b,Card:v,onRowNavigate:y,disableTableView:S,hideViewToggle:C,include:A}){const[R,E]=D({pagination:{pageIndex:0,pageSize:20},sorting:[]}),{sorting:g,pagination:h}=R,[q,qe]=D(""),[ue,de]=D({}),[Q,Ve]=D(s),G=W(()=>Q.filter(u=>u.active!==!1).map(u=>{if(u.type==="derived-select"){const F=i[u.property];return F?.type==="derived-select"?F.toApiQuery(String(u.value??"")):{}}const f=u.value instanceof Set?Array.from(u.value):u.value;return u.needOperator===!1?{[u.property]:Array.isArray(f)?f.join(","):f}:u.operator==="between"&&Array.isArray(f)&&f.length===2?{[u.property]:{gte:f[0],lte:f[1]}}:Array.isArray(f)?{[u.property]:{[u.operator]:f.join(",")}}:{[u.property]:{[u.operator]:f}}}).reduce((u,f)=>vt(u,f),{}),[Q,i]),V=A?.length?A.join(","):void 0,k={...o,...G,limit:h.pageSize,sort:wr(g[0]),search:q,...V?{include:V}:{}},ke=yr(),He=["get",e,{...k,page:h.pageIndex+1},"table"],Be=["get",e,k,"card"],U=`${e}_ctx`,[me,pe]=ee(`${U}_column_order_preference`,[]),[ge,Ke]=ee(`${U}_column_visibility_preference`,{id:!1,...a}),[Qe,Ge]=ee(`${U}_view_mode_preference`,S?"card":"table"),Ue=K(),T=S||Ue&&v?"card":Qe,Z=u=>{E(f=>({...f,...u}))};async function fe(u){const f=await ke.GET(e,{params:{query:{...o,page:u,limit:h.pageSize,sort:k.sort,search:k.search,...V?{include:V}:{},...G},path:r}});return{data:f.data??[],total:Number.parseInt(f.response.headers.get("Pagination-Count")||"0"),nextPage:u+1}}const j=ft({queryKey:He,enabled:T==="table",queryFn:()=>fe(h.pageIndex+1),placeholderData:u=>u}),P=bt({queryKey:Be,enabled:T==="card",initialPageParam:1,queryFn:({pageParam:u})=>fe(u),getNextPageParam:(u,f)=>f.flatMap(H=>H.data).length<u.total?u.nextPage:void 0}),be=W(()=>T==="table"?j.data?.data??[]:P.data?.pages.flatMap(u=>u.data)??[],[T,j.data,P.data]),he=W(()=>T==="table"?j.data?.total??0:P.data?.pages[0]?.total??0,[T,j.data,P.data]),ye=T==="table"?j:{...P,data:{data:be,total:he},isLoading:P.isLoading,isFetching:P.isFetching,isError:P.isError,error:P.error,refetch:P.refetch},Ze=b.filter(ce),Xe=[...d?Nr:[],...l,...Cr(Ze??[])];function Ye(u){return typeof u=="function"}function L(u,f){return Ye(u)?u(f):u}const ve=ht({data:be,columns:Xe,getCoreRowModel:yt(),rowCount:he,manualPagination:!0,onPaginationChange:u=>{Z({pagination:L(u,h)})},manualSorting:!0,onSortingChange:u=>{de({}),Z({sorting:[...L(u,g)]})},manualFiltering:!0,onColumnVisibilityChange:u=>{Ke(L(u,ge))},onRowSelectionChange:u=>{de(L(u,ue))},onColumnOrderChange:u=>{pe(L(u,me))},state:{sorting:g,columnVisibility:ge,pagination:h,rowSelection:ue,columnOrder:me},meta:{refetch:ye.refetch}});return ie(()=>{const u=ve.getAllFlatColumns().map(F=>F.id),f=u.filter(F=>F!=="checkbox"&&F!==I);pe(F=>{const H=F.filter(X=>f.includes(X)),Je=f.filter(X=>!F.includes(X)),We=H.length>0?[...H,...Je]:f;return[...u.includes("checkbox")?["checkbox"]:[],...We,...u.includes(I)?[I]:[]]})},[]),{tableState:R,updateTableState:Z,query:ye,setSearchQuery:qe,searchQuery:q,tanTable:ve,mergedFilters:G,filters:Q,setFilters:Ve,filterConfig:i,tableActions:b,pathParameters:r,queryParameters:o,viewMode:T,setViewMode:Ge,Card:v,allowSelection:d,allowToolbar:c,previewFilters:p,infiniteQuery:P,disableTableView:S,hideViewToggle:C,onRowNavigate:y,resourceName:n}}const je=et(null);function N(){const e=tt(je);if(!e)throw Error("DataTable should be used within DataTableProvider.");return e}function Kn({children:e,...n}){return t(je.Provider,{value:n,children:e})}function Pr(){const{query:e,resourceName:n,allowToolbar:r}=N(),o=$();if(e.isFetching)return null;if(e.isError)return m("span",{className:"flex gap-3 items-center",children:[t(Qt,{className:"text-icon-primary"}),t("span",{children:e.error?.message})]});if(e.data?.data?.length===0){const l=n&&pr(o(n),2).toLowerCase();return m("div",{className:"text-center flex flex-col gap-2",children:[t("p",{className:"font-semibold text-text-primary",children:l?`No ${l} found.`:"No results found."}),r&&t("p",{className:"text-text-secondary",children:"Adjust your filter or search request."})]})}return t(M,{children:"Unknown error. Please contact customer support."})}function Fr({cardGridClassName:e}){const{query:n,tanTable:r,viewMode:o,tableActions:l,Card:i}=N(),a=l.filter(ce),d=o==="card"&&!!i;return n.isLoading?t("div",{className:"body-sm flex items-center justify-center min-h-32",children:t(ze,{})}):r.getRowModel().rows.length===0?t("div",{className:"body-sm flex items-center justify-center min-h-32 text-muted",children:t(Pr,{})}):d?t(Ir,{Card:i,actions:a,className:e}):t(zr,{className:"w-full"})}function Qn({className:e,cardGridClassName:n,...r}){const{viewMode:o,Card:l,allowToolbar:i}=N(),a=o==="card"&&!!l;return t(M,{children:m(Ot,{children:[i&&t(Or,{}),m("section",{...r,className:w("z-20 flex flex-col",a?"":"border rounded-lg",e),children:[t("div",{className:"w-full overflow-auto relative rounded-t-lg [scrollbar-width:none]",tabIndex:0,children:t(Fr,{cardGridClassName:n})}),!a&&m("div",{className:"flex w-full justify-between border-t gap-icon py-2 px-icon bg-surface-secondary rounded-b-lg overflow-x-auto",children:[m("div",{className:"flex gap-icon",children:[t(Ar,{}),t(Dr,{})]}),t(Tr,{})]})]})]})})}function Ir({Card:e,actions:n,className:r,...o}){const{tanTable:l,allowSelection:i}=N(),{infiniteQuery:a}=N(),d=Te(null);return ie(()=>{const c=d.current;if(!c)return;const s=new IntersectionObserver(p=>{p[0].isIntersecting&&a.hasNextPage&&!a.isFetchingNextPage&&a.fetchNextPage()},{threshold:.1});return s.observe(c),()=>s.disconnect()},[a.hasNextPage,a.isFetchingNextPage]),m("div",{...o,className:w(r,"grid grid-cols-1 lg:grid-cols-2 gap-icon pb-input"),children:[l.getRowModel().rows.map((c,s)=>{const p={isSelected:c.getIsSelected(),onToggle:()=>c.toggleSelected(),allowSelection:i};return t(rt,{children:e(c.original,n,p,s)},c.id)}),t("div",{ref:d,className:"col-span-full h-4 flex items-center justify-center",children:a.isFetchingNextPage&&t(ze,{})})]})}function Ar(){if(oe()==="customer-portal")return null;const{tanTable:n}=N(),[r,o]=D(null),l=$(),i=nt(Se(at),Se(it,{coordinateGetter:ct}));return t(ot,{sensors:i,collisionDetection:st,onDragStart:d=>{const{active:c}=d;o(c.id.toString())},onDragEnd:d=>{const{active:c,over:s}=d;if(s&&c.id!==s.id){const p=n.getState().columnOrder,b=p.indexOf(c.id.toString()),v=p.indexOf(s.id.toString());n.setColumnOrder([...mt(p,b,v)])}o(null)},children:m(ut,{items:n.getState().columnOrder,strategy:dt,children:[m(_,{label:m(M,{children:[t(Et,{className:"inline align-bottom me-1 text-icon-primary"}),"Columns"]}),selectionMode:"multiple",size:"sm",items:n.getAllFlatColumns(),selectedKeys:n.getVisibleFlatColumns().map(d=>d.id),children:[t(O,{onAction:()=>n.toggleAllColumnsVisible(),className:"italic",children:"(select all)"}),n.getState().columnOrder.map(d=>{const c=n.getAllFlatColumns().find(s=>s.id===d);return!c||c.id==="checkbox"||c.id===I?null:t(a,{column:c},c.id)})]}),t(lt,{children:r?t("div",{className:"opacity-70 border-2 border-primary",children:l(r)}):null})]})});function a({column:d}){const{attributes:c,listeners:s,setNodeRef:p,transform:b,transition:v}=pt({id:d.id}),y={transform:gt.Transform.toString(b),transition:v,zIndex:"999"};return m(O,{ref:p,style:y,...c,id:d.id,onAction:()=>d.toggleVisibility(),isDisabled:!d.getCanHide(),className:"flex items-center",children:[t(qt,{...s,className:"size-icon cursor-grab text-icon-primary"}),ae(d),d.getIsSorted()&&t(Le,{className:"size-icon",direction:d.getIsSorted()})]})}}function Tr(){const{tanTable:e}=N(),n=e.getRowCount();return m("div",{className:"flex items-center gap-2",children:[t("span",{className:"whitespace-nowrap body-sm text-muted",children:`${e.getState().pagination.pageIndex*e.getState().pagination.pageSize+1} - ${Math.min((e.getState().pagination.pageIndex+1)*e.getState().pagination.pageSize,n)} of ${n?.toLocaleString()}`}),(e.getCanNextPage()||e.getCanPreviousPage())&&m(M,{children:[t(x,{"aria-label":"First page",onPress:()=>e.firstPage(),isDisabled:!e.getCanPreviousPage(),variant:"neutral",size:"icon-sm",children:t(Vt,{})}),t(x,{"aria-label":"Previous page",onPress:()=>e.previousPage(),isDisabled:!e.getCanPreviousPage(),variant:"neutral",size:"icon-sm",children:t(kt,{})}),t(x,{"aria-label":"Next page",onPress:()=>e.nextPage(),isDisabled:!e.getCanNextPage(),variant:"neutral",size:"icon-sm",children:t(Ht,{})}),t(x,{"aria-label":"Last page",onClick:()=>e.lastPage(),isDisabled:!e.getCanNextPage(),variant:"neutral",size:"icon-sm",children:t(Bt,{})})]})]})}function Dr(){if(oe()==="customer-portal")return null;const{tanTable:n}=N(),r=[10,20,30,40,50];return t(_,{label:n.getState().pagination.pageSize.toString(),selectionMode:"single",size:"sm",selectedKeys:[n.getState().pagination.pageSize.toString()],items:r.map(o=>({id:o.toString(),value:o})),children:o=>t(O,{onAction:()=>n.setPageSize(o.value),children:o.value})})}function Or(){const{query:e,tanTable:n,searchQuery:r,setSearchQuery:o,tableActions:l,viewMode:i,setViewMode:a,Card:d,previewFilters:c,disableTableView:s,hideViewToggle:p}=N(),b=n.getSelectedRowModel().rows.length>0,v=K(),y=l.filter(S=>S.resourceType!=="single").filter(S=>S.resourceType==="multiple"===b);return m("section",{className:"flex justify-between my-0 mb-icon gap-icon overflow-x-auto py-1",children:[m("div",{className:w("flex gap-icon max-md:min-w-0 max-md:flex-1"),children:[t(x,{"aria-label":"Refresh",isPending:e.isFetching,onClick:()=>e.refetch(),variant:"neutral",size:"icon",className:w("max-md:shrink-0"),children:t(Lt,{})}),t(rr,{value:r,onChange:o,className:w("max-md:min-w-0 max-md:flex-1")}),t(Vr,{previewFilters:c,className:w("max-md:shrink-0")})]}),!v&&m("div",{className:"flex gap-icon",children:[t(Ie,{items:y,isFetching:e.isFetching}),d&&!s&&!p&&m("div",{className:"flex gap-1 bg-surface-primary rounded-md overflow-hidden",children:[t(x,{variant:i==="table"?"primary":"neutral",size:"icon",onPress:()=>a("table"),"aria-label":"Table view",className:"border-none",children:t(_t,{})}),t(x,{variant:i==="card"?"primary":"neutral",size:"icon",onPress:()=>a("card"),"aria-label":"Card view",className:"border-none",children:t($t,{})})]})]}),v&&y.length>0&&t("div",{className:"fixed inset-x-0 bottom-0 z-30 flex gap-icon border-t bg-surface-primary p-icon",children:t(Ie,{items:y,isFetching:e.isFetching,buttonClassName:"flex-1 justify-center"})})]})}function Le({direction:e,...n}){return e==="asc"?t(Gt,{className:"size-3.5",...n}):e==="desc"?t(Ut,{className:"size-3.5",...n}):t(Zt,{className:"size-3.5",...n})}function ae(e){const n=$(),r=e.columnDef.header;return typeof r=="string"?r:n(e.id)}function Mr(e){const n=e.column.columnDef.meta?.displayType,r=e.getValue();if(r==null)return null;switch(n){case"date":return t("span",{className:"tabular-nums",children:B(r)});case"number":return t("span",{className:"block text-right tabular-nums",children:mr(r)});case"boolean":return t(xe,{variant:r?"success":"destructive",className:"capitalize",children:String(r)});case"badge":return t(xe,{children:String(r)});case"tags":let o=Array.isArray(r)?r:[String(r)];return t(Sr,{items:o.map(a=>({id:a,name:a})),className:"!flex-nowrap",children:a=>t(xr,{children:a.name})});case"progressBar":const[l,i]=r;return t(vr,{meterClassName:"w-16",label:`${l}/${i}`,minValue:0,maxValue:i,value:l});case"country":return t(lr,{value:r});case"enum":return t("span",{className:"uppercase w-full",children:String(r)});case"fileSize":return dr(r);case"days":return ur(r);case"os":return Dt[r]??r;case"licenseType":return hr[r]??r;case"subscriptionInterval":return cr.formatISODuration(r);case"subscriptionStartTrigger":return br(r);default:return String(r)}}function Ce({header:e}){const n=e.column.columnDef.header;return typeof n=="string"||!n?ae(e.column):typeof n=="function"?typeof n(e.getContext())=="string"?ae(e.column):ne(n,e.getContext()):ne(n,e.getContext())}function zr({className:e}){const{tanTable:n,onRowNavigate:r}=N(),o=(l,i,a="z-50")=>w("text-left body-sm font-medium whitespace-nowrap",l&&`sticky right-0 ${a} text-center justify-center`,i);return m(nr,{className:w("table-auto border-0",e),children:[t(ar,{className:"sticky top-0 z-10 rounded-lg border-stroke-secondary!",children:n.getHeaderGroups().map(l=>t(we,{className:"border-stroke-secondary!",children:l.headers.map(i=>m(ir,{scope:"col",colSpan:i.colSpan,className:o(i.id===I,"bg-surface-secondary"),children:[!i.column.getCanSort()&&!i.isPlaceholder&&t("div",{className:w("w-full flex items-center gap-1 text-xs uppercase font-semibold text-text-secondary",i.id===I?"justify-center":"justify-start"),children:t(Ce,{header:i})}),i.column.getCanSort()&&m(x,{variant:"ghost",size:"none",className:w("w-full p-1 rounded-md uppercase text-text-secondary text-xs font-semibold",i.id===I?"justify-center":"justify-start",i.column.getIsSorted()?"text-primary":""),onPress:i.column.getToggleSortingHandler(),children:[t("span",{children:t(Ce,{header:i})}),i.column.getIsSorted()&&t(Le,{direction:i.column.getIsSorted()})]})]},i.id))},l.id))}),t(or,{children:n.getRowModel().rows.map(l=>t(we,{className:w("group border-stroke-secondary! bg-surface-primary hover:not-data-[selected=true]:bg-surface-secondary data-[selected=true]:bg-surface-tertiary",r&&"cursor-pointer focus-visible:outline focus-visible:outline-ring"),"data-selected":l.getIsSelected(),...r&&{role:"link",tabIndex:0,onClick:i=>{i.target.closest('a, button, input, select, textarea, [role="button"]')||r(l.original)},onKeyDown:i=>{i.key==="Enter"&&r(l.original)}},children:l.getVisibleCells().map(i=>{const a=i.column.id===I,d=i.column.columnDef.meta?.displayType?Mr(i):ne(i.column.columnDef.cell,i.getContext());return t(sr,{className:w(o(a,a?"bg-surface-primary group-hover:not-group-data-[selected=true]:bg-surface-secondary group-data-[selected=true]:bg-surface-tertiary":"","z-1"),a&&"flex justify-center items-center"),children:d},i.id)})},l.id))})]})}function Pe(e){return e.resourceType==="none"}function ce(e){return e.resourceType==="single"}function Fe(e){return e.resourceType==="multiple"}function Ie({items:e,isFetching:n,buttonClassName:r}){const{openDialog:o,closeDialog:l}=se(),{tanTable:i,mergedFilters:a}=N();function d(s,p){return s.isDisabled?Pe(s)?s.isDisabled():Fe(s)?s.isDisabled(p):!1:!1}const c=i.getSelectedRowModel().rows.map(s=>s.original);return t(M,{children:e.map((s,p)=>{const b=s.icon,v=d(s,c)||n;return m(x,{"aria-label":s.label,type:"button",isDisabled:v,className:w("animate-in fade-in slide-in-from-right-15 duration-300 transition-transform",r),onPress:y=>{const S={event:y,openDialog:o,closeDialog:l,activeFilters:a};Pe(s)?s.onPress(S):Fe(s)&&s.onPress({...S,data:c})},variant:s.variant??"neutral",children:[b&&t(b,{"aria-hidden":!0}),t("span",{children:s.label})]},`${s.label}-${p}`)})})}function Rr({label:e,items:n,data:r}){const{openDialog:o,closeDialog:l}=se(),{mergedFilters:i}=N();return n.length<5?t("div",{className:"flex items-center gap-2",children:n.map((a,d)=>{const c=a.icon,s=typeof a.label=="function"?a.label(r):a.label;return m(gr,{children:[t(x,{"aria-label":typeof s=="string"?s:void 0,isDisabled:a.isDisabled?.(r)??!1,variant:"ghost",size:"icon",onPress:()=>{const p={openDialog:o,closeDialog:l};a.onPress({...p,data:r,activeFilters:i})},children:t(c,{className:"size-icon"})}),t(fr,{children:s})]},`${d}-${typeof s=="string"?s:""}`)})}):t(_,{withChevron:!1,"aria-label":"Actions",label:e,size:"icon",children:n.map((a,d)=>{const c=a.icon,s=typeof a.label=="function"?a.label(r):a.label;return m(O,{id:typeof s=="string"?s:void 0,isDisabled:a.isDisabled?.(r)??!1,onAction:()=>{const p={openDialog:o,closeDialog:l};ce(a)&&a.onPress({...p,data:r,activeFilters:i})},children:[t(c,{className:"size-icon"}),s]},`${d}-${typeof s=="string"?s:""}`)})})}const Gn=["eq","ne","cn","nc","sw","ew","in","nin","gt","gte","lt","lte","between"],Ae={eq:"equal to",ne:"not equal to",cn:"contains",nc:"does not contain",sw:"starts with",ew:"ends with",in:"includes",nin:"does not include",gt:"greater than",gte:"greater than or equal to",lt:"less than",lte:"less than or equal to",between:"between"},jr={eq:"=",ne:"≠",cn:"contains",nc:"!contains",sw:"starts with",ew:"ends with",in:"in",nin:"not in",gt:">",gte:"≥",lt:"<",lte:"≤",between:"↔"};function z(e,n){const r=n.type,o=`${e}-${Date.now()}`,l=r==="bool"||r==="derived-select"?!1:n.needOperator??!0,i=l?_e[r][0]:"eq",a={id:o,property:e,operator:i,needOperator:l};switch(r){case"bool":return{...a,type:r,value:!0};case"derived-select":return{...a,type:r,value:n.options[0]?.id??""};case"string":return{...a,type:r,value:""};case"date":return{...a,type:r,value:i==="between"?[new Date().toISOString(),new Date().toISOString()]:new Date().toISOString()};case"id":return{...a,type:r,value:""};case"id-search":return{...a,type:r,value:[]};case"enum":return{...a,type:r,value:new Set};case"number":return{...a,type:r,value:0}}}const _e={bool:["eq"],"derived-select":["eq"],enum:["in","nin"],id:["in","nin"],"id-search":["in","nin"],string:["eq","ne","cn","nc","sw","ew","in","nin"],date:["between","lt","gt"],number:["eq","ne","gt","gte","lt","lte"]};function Lr(e,n){let r=n.value!==void 0?n.value:e.value;const o=n.operator??e.operator;if(e.type==="date"&&n.operator!==void 0)if(o==="between"&&!Array.isArray(r)){const l=typeof r=="string"?r:new Date().toISOString();r=[l,l]}else o!=="between"&&Array.isArray(r)&&(r=r[0]??new Date().toISOString());return r}function $e(){const{setFilters:e,filterConfig:n}=N();return{updateFilter:(i,a)=>{e(d=>{const c=d.find(p=>p.property===i)??z(i,n[i]),s={...c,...a,value:Lr(c,a),active:!0};return d.some(p=>p.id===c.id)?d.map(p=>p.id===c.id?s:p):[...d,s]})},removeFilter:i=>{e(a=>{const d=a.find(c=>c.id===i);return d?d.isPreview?a.map(c=>c.id===i?{...z(c.property,n[c.property]),active:!1,isPreview:!0}:c):a.filter(c=>c.id!==i):a})},clearAllFilters:()=>{e(i=>i.filter(a=>a.isPreview).map(a=>({...z(a.property,n[a.property]),active:!1,isPreview:!0})))}}}function _r(e,n){switch(e.type){case"string":case"id":return e.value??"";case"number":return e.value?.toString()??"";case"bool":return e.value?"true":"false";case"derived-select":{const r=n[e.property];if(!r||r.type!=="derived-select")return e.value??"";const o=r.options.find(l=>l.id===e.value);return typeof o?.label=="string"?o.label:e.value??""}case"date":if(Array.isArray(e.value)){const[r,o]=e.value;return`${B(r,{dateStyle:"short"})??""} – ${B(o,{dateStyle:"short"})??""}`}return e.value?B(e.value,{dateStyle:"short"})??"":"";case"enum":return e.value&&e.value.size>0?`${e.value.size} selected`:"";case"id-search":return e.value&&e.value.length>0?e.value.length===1?"1 item":`${e.value.length} items`:""}}function $r({filter:e,filterConfig:n,onChange:r}){if(e.type==="string"||e.type==="id")return t(Tt,{autoFocus:!0,value:e.value??"",onChange:r,"aria-label":"Filter value"});if(e.type==="number")return t(Pt,{autoFocus:!0,value:e.value,onChange:r,"aria-label":"Filter value"});if(e.type==="date"){if(e.operator==="between"){const[l,i]=Array.isArray(e.value)?e.value:[new Date().toISOString(),new Date().toISOString()],a=Y(l,J()),d=Y(i,J());return m("div",{className:"flex flex-col gap-icon",children:[t(te,{autoFocus:!0,hideTimeZone:!0,label:"From",value:a,onChange:c=>r([c?c.toAbsoluteString():l,i])}),t(te,{hideTimeZone:!0,label:"To",value:d,onChange:c=>r([l,c?c.toAbsoluteString():i])})]})}const o=e.value&&!Array.isArray(e.value)?Y(e.value,J()):null;return t(te,{autoFocus:!0,hideTimeZone:!0,value:o,onChange:l=>r(l?l.toAbsoluteString():new Date().toISOString()),"aria-label":"Filter date"})}if(e.type==="enum"){const o=n[e.property];return o.type!=="enum"?null:t(Ct,{autoFocus:!0,items:o.options,value:e.value??new Set,onChange:r,"aria-label":"Filter value"})}if(e.type==="id-search"){const o=n[e.property];if(o.type!=="id-search")return null;const l=o.defaultParams;return t(tr,{autoFocus:!0,path:o.path,accessor:o.accessor,defaultParams:l,value:e.value??[],onChange:r,"aria-label":"Filter value"})}return null}function Ee({filter:e,filterConfig:n,resourceFormatter:r,onRemove:o,onUpdate:l,isOpen:i,onOpenChange:a}){const d=e.needOperator===!1?["eq"]:_e[e.type],c=_r(e,n),s=oe(),p=K(),b=e.type==="bool"||e.type==="derived-select",v=p?m("div",{className:"flex flex-col gap-1",children:[t("span",{className:"body-sm text-muted",children:r(e.property)}),t(At,{type:"button",className:"w-full","aria-label":r(e.property),children:c})]}):m(x,{type:"button",variant:e.active===!1?"neutral":"primary_neutral",className:"animate-in slide-in-from-left-10 fade-in flex justify-between gap-2",children:[t(le,{}),b?t("span",{className:"font-medium",children:c}):m(M,{children:[t("span",{className:"font-medium",children:r(e.property)}),s!=="customer-portal"&&t("span",{children:jr[e.operator]}),s!=="customer-portal"&&c&&t("span",{children:c})]}),e.active!==!1&&t(De,{onPress:()=>o(),children:t("span",{className:"bg-primary hover:bg-destructive rounded-full size-icon flex justify-center items-center",children:t(Me,{className:"size-2.5 text-surface-primary"})})})]});if(b){let y,S;if(e.type==="bool")y=[{id:"true",label:"True"},{id:"false",label:"False"}],S=e.value?"true":"false";else{const C=n[e.property];y=C?.type==="derived-select"?C.options:[],S=e.value??""}return m(St,{isOpen:i,onOpenChange:a,children:[t("div",{className:"relative",children:v}),m(xt,{className:"min-w-48",children:[t(wt,{inset:!0,separator:!1,children:r(e.property)}),t(Nt,{selectionMode:"single",disallowEmptySelection:!0,selectedKeys:new Set([S]),onSelectionChange:C=>{if(C==="all")return;const A=C.values().next().value;A!=null&&l({value:e.type==="bool"?String(A)==="true":String(A)})},"aria-label":"Filter value",children:y.map(C=>t(O,{id:C.id,children:C.label},C.id))})]})]})}return m(Ft,{isOpen:i,onOpenChange:a,children:[t("div",{className:"relative",children:v}),t(It,{className:"p-icon min-w-48",children:m("div",{className:"flex flex-col gap-icon",children:[d.length>1&&t(_,{label:Ae[e.operator],variant:"neutral","aria-label":"Change operator",children:d.map(y=>t(O,{onAction:()=>l({operator:y}),children:Ae[y]},y))}),t($r,{filter:e,filterConfig:n,onChange:y=>l({value:y})}),t(x,{type:"button",variant:"neutral",className:"self-end",onPress:o,"aria-label":`Remove ${r(e.property)} filter`,children:"Clear"})]})})]})}function Er({onApply:e}){const{filters:n,filterConfig:r}=N(),o=$(),{updateFilter:l,removeFilter:i,clearAllFilters:a}=$e(),[d,c]=D(null);return m(M,{children:[t(Mt,{children:t(zt,{children:"Filter"})}),t(Rt,{className:"flex flex-col gap-input",children:Object.keys(r).map(s=>{const p=n.find(b=>b.property===s)??z(s,r[s]);return t(Ee,{filter:p,filterConfig:r,resourceFormatter:o,onRemove:()=>i(p.id),onUpdate:b=>l(s,b),isOpen:d===s,onOpenChange:b=>c(b?s:null)},s)})}),m(jt,{children:[t(x,{variant:"neutral",onPress:()=>{a(),c(null)},children:"Clear All"}),t(x,{variant:"primary",onPress:e,children:"Apply"})]})]})}function qr({className:e,hasClearableFilters:n,isDisabled:r,onClearAll:o,...l}){const{openDialog:i,closeDialog:a}=se();return t("section",{...l,className:w("flex items-center",e),children:m(x,{variant:n?"primary_neutral":"neutral",isDisabled:r,"aria-label":"Filter",onPress:()=>i(t(Er,{onApply:a})),className:"min-w-0 flex-1",children:[t(le,{}),"Filters",n&&t(De,{onPress:o,children:t("span",{className:"animate-slide-in bg-primary hover:bg-destructive rounded-full size-icon flex justify-center items-center",children:t(Me,{className:"size-2.5 text-surface-primary"})})})]})})}function Vr({className:e,previewFilters:n,...r}){const{filters:o,query:l,setFilters:i,filterConfig:a}=N(),d=K(),c=$(),s=Object.keys(a).filter(g=>!o.some(h=>h.property===g)).sort(),[p,b]=D(null),v=Te(!1);ie(()=>{if(!v.current&&o.length===0){const g=[];n&&n.length>0&&g.push(...n.filter(h=>a[h]).map(h=>({...z(h,a[h]),active:!1,isPreview:!0}))),g.length>0&&i(g)}v.current=!0},[]);const{updateFilter:y,removeFilter:S,clearAllFilters:C}=$e(),A=g=>{const h=z(g,a[g]);i([...o,h]),b(h.id)},R=o.some(g=>!g.isPreview||g.active!==!1),E=()=>{C(),b(null)};return d?t(qr,{...r,className:e,hasClearableFilters:R,isDisabled:l.isPending,onClearAll:E}):m("section",{...r,className:w("flex flex-wrap gap-icon items-center",e),children:[o.filter(g=>g.property in a).map(g=>t(Ee,{filter:g,filterConfig:a,resourceFormatter:c,onRemove:()=>S(g.id),onUpdate:h=>y(g.property,h),isOpen:p===g.id,onOpenChange:h=>b(h?g.id:null)},g.id)),s.length>0&&t(_,{label:t(le,{}),isDisabled:l.isPending,variant:"neutral","aria-label":"Add filter",children:s.map(g=>{const h=a[g].type,q=kr[h];return m(O,{className:"!justify-between",onAction:()=>A(g),children:[c(g),t(q,{})]},g)})}),R&&t(x,{variant:"ghost",onPress:E,"aria-label":"Clear all filters",className:"animate-in fade-in",children:"Clear All"})]})}const kr={"id-search":er,bool:re,"derived-select":re,date:Wt,enum:Jt,id:Yt,number:Xt,string:re};export{Ae as C,Vr as D,Qn as DataTable,je as DataTableContext,Kn as DataTableProvider,Gn as F,Hn as getColumnHelper,N as useDataTable,Bn as useDataTableState};
|
|
2
|
-
//# sourceMappingURL=data-table.js.map
|
|
1
|
+
import"../utilities/date.js";import"../utilities/use-mobile.js";import"./dialog.js";import{a as e,c as t,i as n,l as r,o as i,s as a}from"../data-table-filter.js";export{n as DataTable,e as DataTableContext,i as DataTableProvider,a as getColumnHelper,t as useDataTable,r as useDataTableState};
|
|
@@ -19,7 +19,7 @@ interface DatePickerProps<T extends AriaDateValue> extends AriaDatePickerProps<T
|
|
|
19
19
|
* />
|
|
20
20
|
* ```
|
|
21
21
|
*/
|
|
22
|
-
export declare function DatePicker<T extends AriaDateValue>({ label, description, errorMessage, requiredIndicator, className, ...props }: DatePickerProps<T>): import("react
|
|
22
|
+
export declare function DatePicker<T extends AriaDateValue>({ label, description, errorMessage, requiredIndicator, className, ...props }: DatePickerProps<T>): import("react").JSX.Element;
|
|
23
23
|
/**
|
|
24
24
|
* Form-integrated date picker that works with TanStack Form.
|
|
25
25
|
*
|
|
@@ -27,7 +27,7 @@ export declare function DatePicker<T extends AriaDateValue>({ label, description
|
|
|
27
27
|
* Automatically handles form state, validation, and error messages.
|
|
28
28
|
* Uses the field context to connect with the form's validation system.
|
|
29
29
|
*/
|
|
30
|
-
export declare function TfDatePicker({ ...props }: Omit<DatePickerProps<ZonedDateTime>, 'value' | 'onChange' | 'onBlur' | 'isInvalid' | 'errorMessage'>): import("react
|
|
30
|
+
export declare function TfDatePicker({ ...props }: Omit<DatePickerProps<ZonedDateTime>, 'value' | 'onChange' | 'onBlur' | 'isInvalid' | 'errorMessage'>): import("react").JSX.Element;
|
|
31
31
|
interface DateRangePickerProps<T extends AriaDateValue> extends AriaDateRangePickerProps<T>, FormFieldProps {
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
@@ -47,5 +47,5 @@ interface DateRangePickerProps<T extends AriaDateValue> extends AriaDateRangePic
|
|
|
47
47
|
* />
|
|
48
48
|
* ```
|
|
49
49
|
*/
|
|
50
|
-
export declare function DateRangePicker<T extends AriaDateValue>({ label, description, errorMessage, className, ...props }: DateRangePickerProps<T>): import("react
|
|
50
|
+
export declare function DateRangePicker<T extends AriaDateValue>({ label, description, errorMessage, className, ...props }: DateRangePickerProps<T>): import("react").JSX.Element;
|
|
51
51
|
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";import{
|
|
2
|
-
//# sourceMappingURL=date-picker.js.map
|
|
1
|
+
"use client";import{classNames as e}from"../utilities/theme.js";import{_ as t}from"../icons.js";import{useFieldContext as n}from"../utilities/form-context.js";import{Button as r}from"./button.js";import{FieldGroup as i,FormField as a}from"./form.js";import{getFieldErrorMessage as o}from"../utilities/form.js";import{Calendar as s,RangeCalendar as c}from"./calendar.js";import{DateInput as l}from"./datefield.js";import{jsx as u,jsxs as d}from"react/jsx-runtime";import{DatePicker as f,DateRangePicker as p,Dialog as m,Popover as h,composeRenderProps as g}from"react-aria-components";import{getLocalTimeZone as _,parseAbsolute as v,toZoned as y}from"@internationalized/date";var b=({className:t,popoverClassName:n,...r})=>u(h,{className:g(n,t=>e(`w-auto p-3 bg-surface-primary border`,t)),children:u(m,{className:e(`flex w-full flex-col gap-y-2 outline-none sm:flex-row sm:gap-x-icon sm:gap-y-0`,t),...r})});function x({label:n,description:o,errorMessage:c,requiredIndicator:p,className:m,...h}){return d(f,{className:g(m,t=>e(`group flex flex-col gap-2`,t)),...h,children:[u(a,{label:n,description:o,errorMessage:c,requiredIndicator:p,children:d(i,{children:[u(l,{className:`flex-1`,variant:`ghost`}),u(r,{variant:`ghost`,size:`icon`,className:`-me-3 ms-2`,children:u(t,{"aria-hidden":!0})})]})}),u(b,{children:u(s,{})})]})}function S({...e}){let t=n({disabled:e.isDisabled});return u(x,{requiredIndicator:t.isRequired,hideTimeZone:!0,granularity:`day`,isDisabled:e.isDisabled||t.isSubmitting,value:t.state.value?v(t.state.value,_()):null,onChange:e=>e?t.handleChange(y(e,_()).toAbsoluteString()):t.handleChange(null),onBlur:t.handleBlur,isInvalid:!!o(t),errorMessage:o(t),...e})}function C({label:n,description:o,errorMessage:s,className:f,...m}){return d(p,{className:g(f,t=>e(`group flex flex-col gap-2`,t)),...m,children:[u(a,{label:n,errorMessage:s,description:o,children:d(i,{children:[u(l,{variant:`ghost`,slot:`start`}),u(`span`,{"aria-hidden":!0,className:`px-2 body-sm text-muted-foreground`,children:`-`}),u(l,{className:`flex-1`,variant:`ghost`,slot:`end`}),u(r,{variant:`ghost`,size:`icon`,className:`mr-1 data-[focus-visible]:ring-offset-0`,children:u(t,{"aria-hidden":!0})})]})}),u(b,{children:u(c,{})})]})}export{x as DatePicker,C as DateRangePicker,S as TfDatePicker};
|
|
2
|
+
//# sourceMappingURL=date-picker.js.map
|