@jakubmazanec/ui 0.1.0-unstable.081bdf1
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/README.md +45 -0
- package/build/components/Button.d.ts +40 -0
- package/build/components/Button.js +139 -0
- package/build/components/Button.js.map +7 -0
- package/build/components/Card.d.ts +19 -0
- package/build/components/Card.js +26 -0
- package/build/components/Card.js.map +7 -0
- package/build/components/Checkbox.d.ts +39 -0
- package/build/components/Checkbox.js +87 -0
- package/build/components/Checkbox.js.map +7 -0
- package/build/components/CheckboxField.d.ts +18 -0
- package/build/components/CheckboxField.js +22 -0
- package/build/components/CheckboxField.js.map +7 -0
- package/build/components/Combobox.d.ts +57 -0
- package/build/components/Combobox.js +178 -0
- package/build/components/Combobox.js.map +7 -0
- package/build/components/ComboboxOption.d.ts +33 -0
- package/build/components/ComboboxOption.js +59 -0
- package/build/components/ComboboxOption.js.map +7 -0
- package/build/components/DataTable.d.ts +70 -0
- package/build/components/DataTable.js +383 -0
- package/build/components/DataTable.js.map +7 -0
- package/build/components/Description.d.ts +19 -0
- package/build/components/Description.js +28 -0
- package/build/components/Description.js.map +7 -0
- package/build/components/Dialog.d.ts +32 -0
- package/build/components/Dialog.js +55 -0
- package/build/components/Dialog.js.map +7 -0
- package/build/components/DialogPanel.d.ts +19 -0
- package/build/components/DialogPanel.js +29 -0
- package/build/components/DialogPanel.js.map +7 -0
- package/build/components/DialogTitle.d.ts +19 -0
- package/build/components/DialogTitle.js +28 -0
- package/build/components/DialogTitle.js.map +7 -0
- package/build/components/Error.d.ts +19 -0
- package/build/components/Error.js +37 -0
- package/build/components/Error.js.map +7 -0
- package/build/components/Field.d.ts +22 -0
- package/build/components/Field.js +32 -0
- package/build/components/Field.js.map +7 -0
- package/build/components/Fieldset.d.ts +27 -0
- package/build/components/Fieldset.js +39 -0
- package/build/components/Fieldset.js.map +7 -0
- package/build/components/Form.d.ts +22 -0
- package/build/components/Form.js +41 -0
- package/build/components/Form.js.map +7 -0
- package/build/components/Icon.d.ts +29 -0
- package/build/components/Icon.js +59 -0
- package/build/components/Icon.js.map +7 -0
- package/build/components/Input.d.ts +37 -0
- package/build/components/Input.js +111 -0
- package/build/components/Input.js.map +7 -0
- package/build/components/Label.d.ts +19 -0
- package/build/components/Label.js +26 -0
- package/build/components/Label.js.map +7 -0
- package/build/components/Legend.d.ts +19 -0
- package/build/components/Legend.js +26 -0
- package/build/components/Legend.js.map +7 -0
- package/build/components/Listbox.d.ts +59 -0
- package/build/components/Listbox.js +254 -0
- package/build/components/Listbox.js.map +7 -0
- package/build/components/ListboxOption.d.ts +33 -0
- package/build/components/ListboxOption.js +59 -0
- package/build/components/ListboxOption.js.map +7 -0
- package/build/components/Menu.d.ts +21 -0
- package/build/components/Menu.js +29 -0
- package/build/components/Menu.js.map +7 -0
- package/build/components/MenuButton.d.ts +27 -0
- package/build/components/MenuButton.js +45 -0
- package/build/components/MenuButton.js.map +7 -0
- package/build/components/MenuHeading.d.ts +19 -0
- package/build/components/MenuHeading.js +28 -0
- package/build/components/MenuHeading.js.map +7 -0
- package/build/components/MenuItem.d.ts +27 -0
- package/build/components/MenuItem.js +39 -0
- package/build/components/MenuItem.js.map +7 -0
- package/build/components/MenuItems.d.ts +22 -0
- package/build/components/MenuItems.js +36 -0
- package/build/components/MenuItems.js.map +7 -0
- package/build/components/MenuSection.d.ts +19 -0
- package/build/components/MenuSection.js +28 -0
- package/build/components/MenuSection.js.map +7 -0
- package/build/components/MenuSeparator.d.ts +19 -0
- package/build/components/MenuSeparator.js +28 -0
- package/build/components/MenuSeparator.js.map +7 -0
- package/build/components/Popover.d.ts +19 -0
- package/build/components/Popover.js +28 -0
- package/build/components/Popover.js.map +7 -0
- package/build/components/PopoverBackdrop.d.ts +19 -0
- package/build/components/PopoverBackdrop.js +28 -0
- package/build/components/PopoverBackdrop.js.map +7 -0
- package/build/components/PopoverButton.d.ts +29 -0
- package/build/components/PopoverButton.js +47 -0
- package/build/components/PopoverButton.js.map +7 -0
- package/build/components/PopoverGroup.d.ts +19 -0
- package/build/components/PopoverGroup.js +28 -0
- package/build/components/PopoverGroup.js.map +7 -0
- package/build/components/PopoverPanel.d.ts +24 -0
- package/build/components/PopoverPanel.js +38 -0
- package/build/components/PopoverPanel.js.map +7 -0
- package/build/components/Radio.d.ts +33 -0
- package/build/components/Radio.js +57 -0
- package/build/components/Radio.js.map +7 -0
- package/build/components/RadioField.d.ts +11 -0
- package/build/components/RadioField.js +15 -0
- package/build/components/RadioField.js.map +7 -0
- package/build/components/RadioGroup.d.ts +34 -0
- package/build/components/RadioGroup.js +87 -0
- package/build/components/RadioGroup.js.map +7 -0
- package/build/components/Spinner.d.ts +21 -0
- package/build/components/Spinner.js +70 -0
- package/build/components/Spinner.js.map +7 -0
- package/build/components/Table.d.ts +19 -0
- package/build/components/Table.js +26 -0
- package/build/components/Table.js.map +7 -0
- package/build/components/TableBody.d.ts +19 -0
- package/build/components/TableBody.js +26 -0
- package/build/components/TableBody.js.map +7 -0
- package/build/components/TableCaption.d.ts +19 -0
- package/build/components/TableCaption.js +31 -0
- package/build/components/TableCaption.js.map +7 -0
- package/build/components/TableCell.d.ts +19 -0
- package/build/components/TableCell.js +26 -0
- package/build/components/TableCell.js.map +7 -0
- package/build/components/TableFoot.d.ts +19 -0
- package/build/components/TableFoot.js +26 -0
- package/build/components/TableFoot.js.map +7 -0
- package/build/components/TableHead.d.ts +19 -0
- package/build/components/TableHead.js +26 -0
- package/build/components/TableHead.js.map +7 -0
- package/build/components/TableHeader.d.ts +19 -0
- package/build/components/TableHeader.js +26 -0
- package/build/components/TableHeader.js.map +7 -0
- package/build/components/TableRow.d.ts +19 -0
- package/build/components/TableRow.js +26 -0
- package/build/components/TableRow.js.map +7 -0
- package/build/components/Text.d.ts +19 -0
- package/build/components/Text.js +26 -0
- package/build/components/Text.js.map +7 -0
- package/build/components/Textarea.d.ts +34 -0
- package/build/components/Textarea.js +78 -0
- package/build/components/Textarea.js.map +7 -0
- package/build/components/data-table/DataTableHeader.d.ts +13 -0
- package/build/components/data-table/DataTableHeader.js +418 -0
- package/build/components/data-table/DataTableHeader.js.map +7 -0
- package/build/components/data-table/DataTablePageButton.d.ts +6 -0
- package/build/components/data-table/DataTablePageButton.js +11 -0
- package/build/components/data-table/DataTablePageButton.js.map +7 -0
- package/build/components/data-table/internals/constants.d.ts +3 -0
- package/build/components/data-table/internals/constants.js +5 -0
- package/build/components/data-table/internals/constants.js.map +7 -0
- package/build/components/data-table/internals/getCommonPinningClasses.d.ts +2 -0
- package/build/components/data-table/internals/getCommonPinningClasses.js +13 -0
- package/build/components/data-table/internals/getCommonPinningClasses.js.map +7 -0
- package/build/components/data-table/internals/getCommonPinningStyles.d.ts +3 -0
- package/build/components/data-table/internals/getCommonPinningStyles.js +10 -0
- package/build/components/data-table/internals/getCommonPinningStyles.js.map +7 -0
- package/build/components/internals/fieldContext.d.ts +3 -0
- package/build/components/internals/fieldContext.js +4 -0
- package/build/components/internals/fieldContext.js.map +7 -0
- package/build/components/internals/fieldNameContext.d.ts +3 -0
- package/build/components/internals/fieldNameContext.js +4 -0
- package/build/components/internals/fieldNameContext.js.map +7 -0
- package/build/components/internals/filterProps.d.ts +4 -0
- package/build/components/internals/filterProps.js +9 -0
- package/build/components/internals/filterProps.js.map +7 -0
- package/build/components/internals/formIdContext.d.ts +2 -0
- package/build/components/internals/formIdContext.js +4 -0
- package/build/components/internals/formIdContext.js.map +7 -0
- package/build/components/internals/forwardRef.d.ts +4 -0
- package/build/components/internals/forwardRef.js +6 -0
- package/build/components/internals/forwardRef.js.map +7 -0
- package/build/components/internals/useFormId.d.ts +1 -0
- package/build/components/internals/useFormId.js +7 -0
- package/build/components/internals/useFormId.js.map +7 -0
- package/build/components/internals.d.ts +6 -0
- package/build/components/internals.js +8 -0
- package/build/components/internals.js.map +7 -0
- package/build/components/useField.d.ts +1 -0
- package/build/components/useField.js +7 -0
- package/build/components/useField.js.map +7 -0
- package/build/components/useFieldName.d.ts +1 -0
- package/build/components/useFieldName.js +7 -0
- package/build/components/useFieldName.js.map +7 -0
- package/build/components/useForm.d.ts +10 -0
- package/build/components/useForm.js +19 -0
- package/build/components/useForm.js.map +7 -0
- package/build/components.d.ts +50 -0
- package/build/components.js +52 -0
- package/build/components.js.map +7 -0
- package/build/development/createTailwindConfig.d.ts +18 -0
- package/build/development/createTailwindConfig.js +161 -0
- package/build/development/createTailwindConfig.js.map +7 -0
- package/build/development/createTailwindMerge.d.ts +2 -0
- package/build/development/createTailwindMerge.js +74 -0
- package/build/development/createTailwindMerge.js.map +7 -0
- package/build/development/internals/PaletteConfig.d.ts +6 -0
- package/build/development/internals/PaletteConfig.js +2 -0
- package/build/development/internals/PaletteConfig.js.map +7 -0
- package/build/development/internals/SwatchValue.d.ts +9 -0
- package/build/development/internals/SwatchValue.js +2 -0
- package/build/development/internals/SwatchValue.js.map +7 -0
- package/build/development/internals/clamp.d.ts +1 -0
- package/build/development/internals/clamp.js +5 -0
- package/build/development/internals/clamp.js.map +7 -0
- package/build/development/internals/constants.d.ts +2 -0
- package/build/development/internals/constants.js +22 -0
- package/build/development/internals/constants.js.map +7 -0
- package/build/development/internals/createDisplayColor.d.ts +1 -0
- package/build/development/internals/createDisplayColor.js +24 -0
- package/build/development/internals/createDisplayColor.js.map +7 -0
- package/build/development/internals/createDistributionValues.d.ts +4 -0
- package/build/development/internals/createDistributionValues.js +32 -0
- package/build/development/internals/createDistributionValues.js.map +7 -0
- package/build/development/internals/createHueScale.d.ts +4 -0
- package/build/development/internals/createHueScale.js +15 -0
- package/build/development/internals/createHueScale.js.map +7 -0
- package/build/development/internals/createPalette.d.ts +16 -0
- package/build/development/internals/createPalette.js +36 -0
- package/build/development/internals/createPalette.js.map +7 -0
- package/build/development/internals/createSaturationScale.d.ts +4 -0
- package/build/development/internals/createSaturationScale.js +18 -0
- package/build/development/internals/createSaturationScale.js.map +7 -0
- package/build/development/internals/createSwatches.d.ts +10 -0
- package/build/development/internals/createSwatches.js +31 -0
- package/build/development/internals/createSwatches.js.map +7 -0
- package/build/development/internals/hexToHsl.d.ts +5 -0
- package/build/development/internals/hexToHsl.js +37 -0
- package/build/development/internals/hexToHsl.js.map +7 -0
- package/build/development/internals/hexToRgb.d.ts +5 -0
- package/build/development/internals/hexToRgb.js +21 -0
- package/build/development/internals/hexToRgb.js.map +7 -0
- package/build/development/internals/hslToHex.d.ts +1 -0
- package/build/development/internals/hslToHex.js +19 -0
- package/build/development/internals/hslToHex.js.map +7 -0
- package/build/development/internals/hslToRgb.d.ts +5 -0
- package/build/development/internals/hslToRgb.js +42 -0
- package/build/development/internals/hslToRgb.js.map +7 -0
- package/build/development/internals/isHex.d.ts +1 -0
- package/build/development/internals/isHex.js +7 -0
- package/build/development/internals/isHex.js.map +7 -0
- package/build/development/internals/resolveModule.d.ts +1 -0
- package/build/development/internals/resolveModule.js +9 -0
- package/build/development/internals/resolveModule.js.map +7 -0
- package/build/development/internals/round.d.ts +1 -0
- package/build/development/internals/round.js +6 -0
- package/build/development/internals/round.js.map +7 -0
- package/build/development/internals/unsignedModulo.d.ts +1 -0
- package/build/development/internals/unsignedModulo.js +5 -0
- package/build/development/internals/unsignedModulo.js.map +7 -0
- package/build/development/internals.d.ts +1 -0
- package/build/development/internals.js +3 -0
- package/build/development/internals.js.map +7 -0
- package/build/development.d.ts +2 -0
- package/build/development.js +4 -0
- package/build/development.js.map +7 -0
- package/build/inter-variable-italic.woff2 +0 -0
- package/build/inter-variable.woff2 +0 -0
- package/build/main.d.ts +5 -0
- package/build/main.js +7 -0
- package/build/main.js.map +7 -0
- package/build/styles.css +23 -0
- package/build/styles.css.map +7 -0
- package/build/theme/Theme.d.ts +143 -0
- package/build/theme/Theme.js +2 -0
- package/build/theme/Theme.js.map +7 -0
- package/build/theme/ThemeProvider.d.ts +6 -0
- package/build/theme/ThemeProvider.js +7 -0
- package/build/theme/ThemeProvider.js.map +7 -0
- package/build/theme/defaultTheme.d.ts +2 -0
- package/build/theme/defaultTheme.js +100 -0
- package/build/theme/defaultTheme.js.map +7 -0
- package/build/theme/internals/ClassName.d.ts +1 -0
- package/build/theme/internals/ClassName.js +2 -0
- package/build/theme/internals/ClassName.js.map +7 -0
- package/build/theme/internals/ComponentProps.d.ts +7 -0
- package/build/theme/internals/ComponentProps.js +2 -0
- package/build/theme/internals/ComponentProps.js.map +7 -0
- package/build/theme/internals/ComponentTheme.d.ts +35 -0
- package/build/theme/internals/ComponentTheme.js +2 -0
- package/build/theme/internals/ComponentTheme.js.map +7 -0
- package/build/theme/internals/ComponentThemeCompoundVariants.d.ts +12 -0
- package/build/theme/internals/ComponentThemeCompoundVariants.js +2 -0
- package/build/theme/internals/ComponentThemeCompoundVariants.js.map +7 -0
- package/build/theme/internals/ComponentThemeDefinition.d.ts +6 -0
- package/build/theme/internals/ComponentThemeDefinition.js +2 -0
- package/build/theme/internals/ComponentThemeDefinition.js.map +7 -0
- package/build/theme/internals/ComponentThemeDefinitionElements.d.ts +1 -0
- package/build/theme/internals/ComponentThemeDefinitionElements.js +2 -0
- package/build/theme/internals/ComponentThemeDefinitionElements.js.map +7 -0
- package/build/theme/internals/ComponentThemeDefinitionVariants.d.ts +3 -0
- package/build/theme/internals/ComponentThemeDefinitionVariants.js +2 -0
- package/build/theme/internals/ComponentThemeDefinitionVariants.js.map +7 -0
- package/build/theme/internals/ComponentThemeProps.d.ts +5 -0
- package/build/theme/internals/ComponentThemeProps.js +2 -0
- package/build/theme/internals/ComponentThemeProps.js.map +7 -0
- package/build/theme/internals/ComponentThemeVariants.d.ts +14 -0
- package/build/theme/internals/ComponentThemeVariants.js +2 -0
- package/build/theme/internals/ComponentThemeVariants.js.map +7 -0
- package/build/theme/internals/ComponentWithTheme.d.ts +5 -0
- package/build/theme/internals/ComponentWithTheme.js +2 -0
- package/build/theme/internals/ComponentWithTheme.js.map +7 -0
- package/build/theme/internals/UseComponentTheme.d.ts +21 -0
- package/build/theme/internals/UseComponentTheme.js +2 -0
- package/build/theme/internals/UseComponentTheme.js.map +7 -0
- package/build/theme/internals/UseComponentThemeReturn.d.ts +6 -0
- package/build/theme/internals/UseComponentThemeReturn.js +2 -0
- package/build/theme/internals/UseComponentThemeReturn.js.map +7 -0
- package/build/theme/internals/booleanToString.d.ts +1 -0
- package/build/theme/internals/booleanToString.js +5 -0
- package/build/theme/internals/booleanToString.js.map +7 -0
- package/build/theme/internals/createComponentTheme.d.ts +3 -0
- package/build/theme/internals/createComponentTheme.js +39 -0
- package/build/theme/internals/createComponentTheme.js.map +7 -0
- package/build/theme/internals/createUseComponentThemeReturn.d.ts +15 -0
- package/build/theme/internals/createUseComponentThemeReturn.js +50 -0
- package/build/theme/internals/createUseComponentThemeReturn.js.map +7 -0
- package/build/theme/internals/pickPropertyIfExists.d.ts +4 -0
- package/build/theme/internals/pickPropertyIfExists.js +11 -0
- package/build/theme/internals/pickPropertyIfExists.js.map +7 -0
- package/build/theme/internals/themeContext.d.ts +330 -0
- package/build/theme/internals/themeContext.js +4 -0
- package/build/theme/internals/themeContext.js.map +7 -0
- package/build/theme/internals/useTheme.d.ts +329 -0
- package/build/theme/internals/useTheme.js +7 -0
- package/build/theme/internals/useTheme.js.map +7 -0
- package/build/theme/internals.d.ts +18 -0
- package/build/theme/internals.js +20 -0
- package/build/theme/internals.js.map +7 -0
- package/build/theme.d.ts +3 -0
- package/build/theme.js +5 -0
- package/build/theme.js.map +7 -0
- package/build/utilities/WithLocaleOrLocales.d.ts +5 -0
- package/build/utilities/WithLocaleOrLocales.js +2 -0
- package/build/utilities/WithLocaleOrLocales.js.map +7 -0
- package/build/utilities/formatDateTime.d.ts +3 -0
- package/build/utilities/formatDateTime.js +11 -0
- package/build/utilities/formatDateTime.js.map +7 -0
- package/build/utilities/formatNumber.d.ts +3 -0
- package/build/utilities/formatNumber.js +11 -0
- package/build/utilities/formatNumber.js.map +7 -0
- package/build/utilities/internals/cache.d.ts +1 -0
- package/build/utilities/internals/cache.js +3 -0
- package/build/utilities/internals/cache.js.map +7 -0
- package/build/utilities/internals/createCacheKey.d.ts +1 -0
- package/build/utilities/internals/createCacheKey.js +6 -0
- package/build/utilities/internals/createCacheKey.js.map +7 -0
- package/build/utilities/internals/getMemoized.d.ts +1 -0
- package/build/utilities/internals/getMemoized.js +12 -0
- package/build/utilities/internals/getMemoized.js.map +7 -0
- package/build/utilities/internals/normalizeLocales.d.ts +2 -0
- package/build/utilities/internals/normalizeLocales.js +12 -0
- package/build/utilities/internals/normalizeLocales.js.map +7 -0
- package/build/utilities/internals.d.ts +4 -0
- package/build/utilities/internals.js +6 -0
- package/build/utilities/internals.js.map +7 -0
- package/build/utilities.d.ts +3 -0
- package/build/utilities.js +5 -0
- package/build/utilities.js.map +7 -0
- package/package.json +100 -0
- package/source/components/Button.tsx +172 -0
- package/source/components/Card.ts +46 -0
- package/source/components/Checkbox.tsx +125 -0
- package/source/components/CheckboxField.tsx +61 -0
- package/source/components/Combobox.tsx +298 -0
- package/source/components/ComboboxOption.tsx +95 -0
- package/source/components/DataTable.tsx +464 -0
- package/source/components/Description.tsx +52 -0
- package/source/components/Dialog.tsx +85 -0
- package/source/components/DialogPanel.tsx +54 -0
- package/source/components/DialogTitle.tsx +52 -0
- package/source/components/Error.tsx +58 -0
- package/source/components/Field.tsx +79 -0
- package/source/components/Fieldset.tsx +64 -0
- package/source/components/Form.tsx +72 -0
- package/source/components/Icon.tsx +96 -0
- package/source/components/Input.tsx +156 -0
- package/source/components/Label.tsx +49 -0
- package/source/components/Legend.tsx +49 -0
- package/source/components/Listbox.tsx +401 -0
- package/source/components/ListboxOption.tsx +95 -0
- package/source/components/Menu.tsx +50 -0
- package/source/components/MenuButton.tsx +69 -0
- package/source/components/MenuHeading.tsx +52 -0
- package/source/components/MenuItem.tsx +63 -0
- package/source/components/MenuItems.tsx +61 -0
- package/source/components/MenuSection.tsx +52 -0
- package/source/components/MenuSeparator.tsx +52 -0
- package/source/components/Popover.tsx +52 -0
- package/source/components/PopoverBackdrop.tsx +52 -0
- package/source/components/PopoverButton.tsx +72 -0
- package/source/components/PopoverGroup.tsx +52 -0
- package/source/components/PopoverPanel.tsx +65 -0
- package/source/components/Radio.tsx +88 -0
- package/source/components/RadioField.tsx +31 -0
- package/source/components/RadioGroup.tsx +147 -0
- package/source/components/Spinner.tsx +70 -0
- package/source/components/Table.ts +47 -0
- package/source/components/TableBody.ts +47 -0
- package/source/components/TableCaption.ts +52 -0
- package/source/components/TableCell.ts +47 -0
- package/source/components/TableFoot.ts +47 -0
- package/source/components/TableHead.ts +47 -0
- package/source/components/TableHeader.ts +47 -0
- package/source/components/TableRow.ts +47 -0
- package/source/components/Text.ts +47 -0
- package/source/components/Textarea.tsx +104 -0
- package/source/components/data-table/DataTableHeader.tsx +602 -0
- package/source/components/data-table/DataTablePageButton.tsx +21 -0
- package/source/components/data-table/internals/constants.ts +3 -0
- package/source/components/data-table/internals/getCommonPinningClasses.ts +19 -0
- package/source/components/data-table/internals/getCommonPinningStyles.ts +13 -0
- package/source/components/internals/fieldContext.ts +4 -0
- package/source/components/internals/fieldNameContext.ts +5 -0
- package/source/components/internals/filterProps.ts +12 -0
- package/source/components/internals/formIdContext.ts +3 -0
- package/source/components/internals/forwardRef.ts +7 -0
- package/source/components/internals/useFormId.ts +7 -0
- package/source/components/internals.ts +6 -0
- package/source/components/useField.ts +7 -0
- package/source/components/useFieldName.ts +7 -0
- package/source/components/useForm.ts +24 -0
- package/source/components.ts +50 -0
- package/source/development/createTailwindConfig.ts +182 -0
- package/source/development/createTailwindMerge.ts +101 -0
- package/source/development/internals/PaletteConfig.ts +6 -0
- package/source/development/internals/SwatchValue.ts +9 -0
- package/source/development/internals/clamp.ts +3 -0
- package/source/development/internals/constants.ts +4 -0
- package/source/development/internals/createDisplayColor.ts +29 -0
- package/source/development/internals/createDistributionValues.ts +38 -0
- package/source/development/internals/createHueScale.ts +17 -0
- package/source/development/internals/createPalette.ts +54 -0
- package/source/development/internals/createSaturationScale.ts +21 -0
- package/source/development/internals/createSwatches.ts +34 -0
- package/source/development/internals/hexToHsl.ts +45 -0
- package/source/development/internals/hexToRgb.ts +23 -0
- package/source/development/internals/hslToHex.ts +23 -0
- package/source/development/internals/hslToRgb.ts +43 -0
- package/source/development/internals/isHex.ts +7 -0
- package/source/development/internals/resolveModule.ts +9 -0
- package/source/development/internals/round.ts +5 -0
- package/source/development/internals/unsignedModulo.ts +3 -0
- package/source/development/internals.ts +1 -0
- package/source/development.ts +2 -0
- package/source/inter-variable-italic.woff2 +0 -0
- package/source/inter-variable.woff2 +0 -0
- package/source/main.ts +5 -0
- package/source/styles.css +25 -0
- package/source/theme/Theme.ts +100 -0
- package/source/theme/ThemeProvider.tsx +12 -0
- package/source/theme/defaultTheme.ts +100 -0
- package/source/theme/internals/ClassName.ts +1 -0
- package/source/theme/internals/ComponentProps.ts +13 -0
- package/source/theme/internals/ComponentTheme.ts +50 -0
- package/source/theme/internals/ComponentThemeCompoundVariants.ts +20 -0
- package/source/theme/internals/ComponentThemeDefinition.ts +7 -0
- package/source/theme/internals/ComponentThemeDefinitionElements.ts +1 -0
- package/source/theme/internals/ComponentThemeDefinitionVariants.ts +3 -0
- package/source/theme/internals/ComponentThemeProps.ts +11 -0
- package/source/theme/internals/ComponentThemeVariants.ts +24 -0
- package/source/theme/internals/ComponentWithTheme.ts +6 -0
- package/source/theme/internals/UseComponentTheme.ts +22 -0
- package/source/theme/internals/UseComponentThemeReturn.ts +15 -0
- package/source/theme/internals/booleanToString.ts +6 -0
- package/source/theme/internals/createComponentTheme.ts +70 -0
- package/source/theme/internals/createUseComponentThemeReturn.ts +87 -0
- package/source/theme/internals/pickPropertyIfExists.ts +24 -0
- package/source/theme/internals/themeContext.ts +5 -0
- package/source/theme/internals/useTheme.ts +7 -0
- package/source/theme/internals.ts +18 -0
- package/source/theme.ts +3 -0
- package/source/utilities/WithLocaleOrLocales.ts +1 -0
- package/source/utilities/formatDateTime.ts +15 -0
- package/source/utilities/formatNumber.ts +15 -0
- package/source/utilities/internals/cache.ts +1 -0
- package/source/utilities/internals/createCacheKey.ts +9 -0
- package/source/utilities/internals/getMemoized.ts +14 -0
- package/source/utilities/internals/normalizeLocales.ts +15 -0
- package/source/utilities/internals.ts +4 -0
- package/source/utilities.ts +3 -0
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import {
|
|
4
|
+
closestCenter,
|
|
5
|
+
DndContext,
|
|
6
|
+
KeyboardSensor,
|
|
7
|
+
MouseSensor,
|
|
8
|
+
TouchSensor,
|
|
9
|
+
useSensor,
|
|
10
|
+
useSensors
|
|
11
|
+
} from "@dnd-kit/core";
|
|
12
|
+
import { restrictToHorizontalAxis } from "@dnd-kit/modifiers";
|
|
13
|
+
import { arrayMove, horizontalListSortingStrategy, SortableContext } from "@dnd-kit/sortable";
|
|
14
|
+
import {
|
|
15
|
+
flexRender,
|
|
16
|
+
getCoreRowModel,
|
|
17
|
+
getFacetedMinMaxValues,
|
|
18
|
+
getFacetedRowModel,
|
|
19
|
+
getFacetedUniqueValues,
|
|
20
|
+
getFilteredRowModel,
|
|
21
|
+
getPaginationRowModel,
|
|
22
|
+
getSortedRowModel,
|
|
23
|
+
useReactTable
|
|
24
|
+
} from "@tanstack/react-table";
|
|
25
|
+
import { useCallback, useId, useState } from "react";
|
|
26
|
+
import { z } from "zod";
|
|
27
|
+
import { Button } from "./Button.js";
|
|
28
|
+
import { DataTableHeader } from "./data-table/DataTableHeader.js";
|
|
29
|
+
import { DataTablePageButton } from "./data-table/DataTablePageButton.js";
|
|
30
|
+
import {
|
|
31
|
+
DEFAULT_PAGE_SIZE,
|
|
32
|
+
MAX_PAGE_BUTTONS_COUNT,
|
|
33
|
+
PAGE_SIZES
|
|
34
|
+
} from "./data-table/internals/constants.js";
|
|
35
|
+
import { getCommonPinningClasses } from "./data-table/internals/getCommonPinningClasses.js";
|
|
36
|
+
import { getCommonPinningStyles } from "./data-table/internals/getCommonPinningStyles.js";
|
|
37
|
+
import { Icon } from "./Icon.js";
|
|
38
|
+
import { Input } from "./Input.js";
|
|
39
|
+
import { Listbox } from "./Listbox.js";
|
|
40
|
+
import { ListboxOption } from "./ListboxOption.js";
|
|
41
|
+
import { Table } from "./Table.js";
|
|
42
|
+
import { TableBody } from "./TableBody.js";
|
|
43
|
+
import { TableCell } from "./TableCell.js";
|
|
44
|
+
import { TableFoot } from "./TableFoot.js";
|
|
45
|
+
import { TableHead } from "./TableHead.js";
|
|
46
|
+
import { TableHeader } from "./TableHeader.js";
|
|
47
|
+
import { TableRow } from "./TableRow.js";
|
|
48
|
+
export const dataTablePaginationSchema = z.object({
|
|
49
|
+
/** Page number, starts with 1. */
|
|
50
|
+
page: z.number(),
|
|
51
|
+
pageSize: z.union([
|
|
52
|
+
z.literal(PAGE_SIZES[0]),
|
|
53
|
+
z.literal(PAGE_SIZES[1]),
|
|
54
|
+
z.literal(PAGE_SIZES[2]),
|
|
55
|
+
z.literal(PAGE_SIZES[3]),
|
|
56
|
+
z.literal(PAGE_SIZES[4])
|
|
57
|
+
]),
|
|
58
|
+
pageCount: z.number()
|
|
59
|
+
});
|
|
60
|
+
export const dataTableSortingSchema = z.union([
|
|
61
|
+
z.literal(false),
|
|
62
|
+
z.object({
|
|
63
|
+
column: z.string(),
|
|
64
|
+
direction: z.enum(["ascending", "descending"])
|
|
65
|
+
})
|
|
66
|
+
]);
|
|
67
|
+
export const dataTableFiltersSchema = z.union([
|
|
68
|
+
z.literal(false),
|
|
69
|
+
z.object({
|
|
70
|
+
column: z.string(),
|
|
71
|
+
filter: z.union([
|
|
72
|
+
z.string(),
|
|
73
|
+
z.number(),
|
|
74
|
+
z.boolean(),
|
|
75
|
+
z.tuple([z.number().nullable().optional(), z.number().nullable().optional()])
|
|
76
|
+
])
|
|
77
|
+
}).array()
|
|
78
|
+
]);
|
|
79
|
+
export const dataTableFacetingSchema = z.record(
|
|
80
|
+
z.string(),
|
|
81
|
+
z.object({
|
|
82
|
+
values: z.unknown().array().optional(),
|
|
83
|
+
min: z.unknown().optional(),
|
|
84
|
+
max: z.unknown().optional()
|
|
85
|
+
})
|
|
86
|
+
);
|
|
87
|
+
export function DataTable({
|
|
88
|
+
data,
|
|
89
|
+
columns,
|
|
90
|
+
pagination: controlledPagination,
|
|
91
|
+
onPagination,
|
|
92
|
+
sorting: controlledSorting,
|
|
93
|
+
onSorting,
|
|
94
|
+
filters: controlledFilters,
|
|
95
|
+
onFiltering,
|
|
96
|
+
faceting
|
|
97
|
+
}) {
|
|
98
|
+
let [pagination, setPagination] = useState({
|
|
99
|
+
pageIndex: 0,
|
|
100
|
+
pageSize: DEFAULT_PAGE_SIZE
|
|
101
|
+
});
|
|
102
|
+
let [columnVisibility, setColumnVisibility] = useState({});
|
|
103
|
+
let [columnOrder, setColumnOrder] = useState(
|
|
104
|
+
columns.map((column) => {
|
|
105
|
+
if (column.id) {
|
|
106
|
+
return column.id;
|
|
107
|
+
}
|
|
108
|
+
if ("accessorKey" in column) {
|
|
109
|
+
return String(column.accessorKey);
|
|
110
|
+
}
|
|
111
|
+
if (typeof column.header === "string") {
|
|
112
|
+
return String(column.header);
|
|
113
|
+
}
|
|
114
|
+
return "";
|
|
115
|
+
})
|
|
116
|
+
);
|
|
117
|
+
let [columnPinning, setColumnPinning] = useState({});
|
|
118
|
+
let [sorting, setSorting] = useState([]);
|
|
119
|
+
let [columnFilters, setColumnFilters] = useState([]);
|
|
120
|
+
let table = useReactTable({
|
|
121
|
+
data,
|
|
122
|
+
columns,
|
|
123
|
+
getCoreRowModel: getCoreRowModel(),
|
|
124
|
+
getSortedRowModel: getSortedRowModel(),
|
|
125
|
+
getPaginationRowModel: onPagination ? void 0 : getPaginationRowModel(),
|
|
126
|
+
getFilteredRowModel: getFilteredRowModel(),
|
|
127
|
+
// getFacetedRowModel: onPagination ? undefined : getFacetedRowModel(),
|
|
128
|
+
// getFacetedUniqueValues: onPagination ? undefined : getFacetedUniqueValues(),
|
|
129
|
+
// getFacetedMinMaxValues: onPagination ? undefined : getFacetedMinMaxValues(),
|
|
130
|
+
getFacetedRowModel: getFacetedRowModel(),
|
|
131
|
+
getFacetedUniqueValues: getFacetedUniqueValues(),
|
|
132
|
+
getFacetedMinMaxValues: getFacetedMinMaxValues(),
|
|
133
|
+
state: {
|
|
134
|
+
pagination: onPagination ? void 0 : pagination,
|
|
135
|
+
columnVisibility,
|
|
136
|
+
columnOrder,
|
|
137
|
+
columnPinning,
|
|
138
|
+
sorting: onSorting ? void 0 : sorting,
|
|
139
|
+
columnFilters: onFiltering ? void 0 : columnFilters
|
|
140
|
+
},
|
|
141
|
+
onPaginationChange: onPagination ? void 0 : setPagination,
|
|
142
|
+
onColumnVisibilityChange: setColumnVisibility,
|
|
143
|
+
onColumnOrderChange: setColumnOrder,
|
|
144
|
+
onColumnPinningChange: setColumnPinning,
|
|
145
|
+
onSortingChange: onSorting ? void 0 : setSorting,
|
|
146
|
+
onColumnFiltersChange: onFiltering ? void 0 : setColumnFilters,
|
|
147
|
+
columnResizeMode: "onChange"
|
|
148
|
+
});
|
|
149
|
+
let handleDragEnd = useCallback(({ active, over }) => {
|
|
150
|
+
if (over && active.id !== over.id) {
|
|
151
|
+
setColumnOrder((previousColumnOrder) => {
|
|
152
|
+
let oldIndex = previousColumnOrder.indexOf(active.id);
|
|
153
|
+
let newIndex = previousColumnOrder.indexOf(over.id);
|
|
154
|
+
return arrayMove(previousColumnOrder, oldIndex, newIndex);
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
}, []);
|
|
158
|
+
let sensors = useSensors(
|
|
159
|
+
useSensor(MouseSensor, {
|
|
160
|
+
activationConstraint: {
|
|
161
|
+
distance: 5
|
|
162
|
+
}
|
|
163
|
+
}),
|
|
164
|
+
useSensor(TouchSensor, {
|
|
165
|
+
activationConstraint: {
|
|
166
|
+
distance: 5
|
|
167
|
+
}
|
|
168
|
+
}),
|
|
169
|
+
useSensor(KeyboardSensor, {})
|
|
170
|
+
);
|
|
171
|
+
let page = onPagination && controlledPagination ? controlledPagination.page : table.getState().pagination.pageIndex + 1;
|
|
172
|
+
let pageSize = onPagination && controlledPagination ? controlledPagination.pageSize : table.getState().pagination.pageSize;
|
|
173
|
+
let pageCount = onPagination && controlledPagination ? controlledPagination.pageCount : table.getPageCount();
|
|
174
|
+
let isFirstPage = page === 1;
|
|
175
|
+
let isLastPage = page >= pageCount;
|
|
176
|
+
let handlePageClick = useCallback(
|
|
177
|
+
(page2) => {
|
|
178
|
+
if (onPagination && controlledPagination) {
|
|
179
|
+
onPagination({
|
|
180
|
+
page: Math.max(1, Math.min(page2, pageCount))
|
|
181
|
+
});
|
|
182
|
+
} else {
|
|
183
|
+
table.setPageIndex(Math.max(0, Math.min(page2 - 1, pageCount)));
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
[controlledPagination, onPagination, pageCount, table]
|
|
187
|
+
);
|
|
188
|
+
let handleFirstPageClick = useCallback(() => {
|
|
189
|
+
if (onPagination && controlledPagination) {
|
|
190
|
+
onPagination({
|
|
191
|
+
page: 1
|
|
192
|
+
});
|
|
193
|
+
} else {
|
|
194
|
+
table.firstPage();
|
|
195
|
+
}
|
|
196
|
+
}, [controlledPagination, onPagination, table]);
|
|
197
|
+
let handleLastPageClick = useCallback(() => {
|
|
198
|
+
if (onPagination && controlledPagination) {
|
|
199
|
+
onPagination({
|
|
200
|
+
page: pageCount
|
|
201
|
+
});
|
|
202
|
+
} else {
|
|
203
|
+
table.lastPage();
|
|
204
|
+
}
|
|
205
|
+
}, [controlledPagination, onPagination, pageCount, table]);
|
|
206
|
+
let handlePreviousPageClick = useCallback(() => {
|
|
207
|
+
if (onPagination && controlledPagination) {
|
|
208
|
+
onPagination({
|
|
209
|
+
page: Math.max(1, Math.min(page - 1, pageCount))
|
|
210
|
+
});
|
|
211
|
+
} else {
|
|
212
|
+
table.previousPage();
|
|
213
|
+
}
|
|
214
|
+
}, [controlledPagination, onPagination, page, pageCount, table]);
|
|
215
|
+
let handleNextPageClick = useCallback(() => {
|
|
216
|
+
if (onPagination && controlledPagination) {
|
|
217
|
+
onPagination({
|
|
218
|
+
page: Math.max(1, Math.min(page + 1, pageCount))
|
|
219
|
+
});
|
|
220
|
+
} else {
|
|
221
|
+
table.nextPage();
|
|
222
|
+
}
|
|
223
|
+
}, [controlledPagination, onPagination, page, pageCount, table]);
|
|
224
|
+
let handlePageChange = useCallback(
|
|
225
|
+
(event) => {
|
|
226
|
+
let pageIndex = event.target.value ? Number(event.target.value) - 1 : 0;
|
|
227
|
+
if (onPagination && controlledPagination) {
|
|
228
|
+
onPagination({
|
|
229
|
+
page: Math.max(1, Math.min(pageIndex + 1, pageCount))
|
|
230
|
+
});
|
|
231
|
+
} else {
|
|
232
|
+
table.setPageIndex(pageIndex);
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
[controlledPagination, onPagination, pageCount, table]
|
|
236
|
+
);
|
|
237
|
+
let handlePageSizeChange = useCallback(
|
|
238
|
+
(pageSize2) => {
|
|
239
|
+
if (onPagination && controlledPagination) {
|
|
240
|
+
onPagination({
|
|
241
|
+
pageSize: Number(pageSize2)
|
|
242
|
+
});
|
|
243
|
+
} else {
|
|
244
|
+
table.setPageSize(Number(pageSize2));
|
|
245
|
+
}
|
|
246
|
+
},
|
|
247
|
+
[controlledPagination, onPagination, table]
|
|
248
|
+
);
|
|
249
|
+
let id = useId();
|
|
250
|
+
console.log("DataTable...", "controlledFilters", controlledFilters);
|
|
251
|
+
console.log("faceting", faceting);
|
|
252
|
+
return /* @__PURE__ */ jsxs(
|
|
253
|
+
DndContext,
|
|
254
|
+
{
|
|
255
|
+
id,
|
|
256
|
+
collisionDetection: closestCenter,
|
|
257
|
+
modifiers: [restrictToHorizontalAxis],
|
|
258
|
+
sensors,
|
|
259
|
+
onDragEnd: handleDragEnd,
|
|
260
|
+
children: [
|
|
261
|
+
/* @__PURE__ */ jsxs(
|
|
262
|
+
Table,
|
|
263
|
+
{
|
|
264
|
+
style: {
|
|
265
|
+
width: table.getCenterTotalSize(),
|
|
266
|
+
tableLayout: "fixed"
|
|
267
|
+
},
|
|
268
|
+
children: [
|
|
269
|
+
/* @__PURE__ */ jsx(TableHead, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx(TableRow, { children: /* @__PURE__ */ jsx(SortableContext, { items: columnOrder, strategy: horizontalListSortingStrategy, children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx(
|
|
270
|
+
DataTableHeader,
|
|
271
|
+
{
|
|
272
|
+
header,
|
|
273
|
+
table,
|
|
274
|
+
sorting: controlledSorting,
|
|
275
|
+
onSorting,
|
|
276
|
+
filters: controlledFilters,
|
|
277
|
+
onFiltering,
|
|
278
|
+
faceting
|
|
279
|
+
},
|
|
280
|
+
header.id
|
|
281
|
+
)) }) }, headerGroup.id)) }),
|
|
282
|
+
/* @__PURE__ */ jsx(TableBody, { children: table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx(TableRow, { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx(
|
|
283
|
+
TableCell,
|
|
284
|
+
{
|
|
285
|
+
className: getCommonPinningClasses(cell.column),
|
|
286
|
+
style: { ...getCommonPinningStyles(cell.column) },
|
|
287
|
+
children: flexRender(cell.column.columnDef.cell, cell.getContext())
|
|
288
|
+
},
|
|
289
|
+
cell.id
|
|
290
|
+
)) }, row.id)) }),
|
|
291
|
+
/* @__PURE__ */ jsx(TableFoot, { children: table.getFooterGroups().map((footerGroup) => /* @__PURE__ */ jsx(TableRow, { children: footerGroup.headers.map((header) => /* @__PURE__ */ jsx(TableHeader, { children: header.isPlaceholder ? null : flexRender(header.column.columnDef.footer, header.getContext()) }, header.id)) }, footerGroup.id)) })
|
|
292
|
+
]
|
|
293
|
+
}
|
|
294
|
+
),
|
|
295
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-x-4 text-sm justify-center", children: [
|
|
296
|
+
/* @__PURE__ */ jsxs("span", { className: "flex items-center gap-x-2", children: [
|
|
297
|
+
/* @__PURE__ */ jsx(
|
|
298
|
+
Button,
|
|
299
|
+
{
|
|
300
|
+
variant: "outline",
|
|
301
|
+
"aria-label": "First page",
|
|
302
|
+
disabled: isFirstPage,
|
|
303
|
+
onClick: handleFirstPageClick,
|
|
304
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "ChevronDoubleLeft" })
|
|
305
|
+
}
|
|
306
|
+
),
|
|
307
|
+
/* @__PURE__ */ jsx(
|
|
308
|
+
Button,
|
|
309
|
+
{
|
|
310
|
+
variant: "outline",
|
|
311
|
+
"aria-label": "Previous page",
|
|
312
|
+
disabled: isFirstPage,
|
|
313
|
+
onClick: handlePreviousPageClick,
|
|
314
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "ChevronLeft" })
|
|
315
|
+
}
|
|
316
|
+
),
|
|
317
|
+
pageCount <= MAX_PAGE_BUTTONS_COUNT ? Array.from({ length: pageCount }).map((_, index) => /* @__PURE__ */ jsx(
|
|
318
|
+
DataTablePageButton,
|
|
319
|
+
{
|
|
320
|
+
page: index + 1,
|
|
321
|
+
isSelected: page === index + 1,
|
|
322
|
+
onClick: handlePageClick
|
|
323
|
+
},
|
|
324
|
+
index
|
|
325
|
+
)) : null,
|
|
326
|
+
/* @__PURE__ */ jsx(
|
|
327
|
+
Button,
|
|
328
|
+
{
|
|
329
|
+
variant: "outline",
|
|
330
|
+
"aria-label": "Next page",
|
|
331
|
+
disabled: isLastPage,
|
|
332
|
+
onClick: handleNextPageClick,
|
|
333
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "ChevronRight" })
|
|
334
|
+
}
|
|
335
|
+
),
|
|
336
|
+
/* @__PURE__ */ jsx(
|
|
337
|
+
Button,
|
|
338
|
+
{
|
|
339
|
+
variant: "outline",
|
|
340
|
+
"aria-label": "Last page",
|
|
341
|
+
disabled: isLastPage,
|
|
342
|
+
onClick: handleLastPageClick,
|
|
343
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "ChevronDoubleRight" })
|
|
344
|
+
}
|
|
345
|
+
)
|
|
346
|
+
] }),
|
|
347
|
+
pageCount > MAX_PAGE_BUTTONS_COUNT ? /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1", children: [
|
|
348
|
+
"Page ",
|
|
349
|
+
page,
|
|
350
|
+
" of ",
|
|
351
|
+
pageCount
|
|
352
|
+
] }) : null,
|
|
353
|
+
pageCount > MAX_PAGE_BUTTONS_COUNT ? /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1", children: [
|
|
354
|
+
"Go to page:",
|
|
355
|
+
/* @__PURE__ */ jsx(
|
|
356
|
+
Input,
|
|
357
|
+
{
|
|
358
|
+
type: "text",
|
|
359
|
+
pattern: "[0-9]*",
|
|
360
|
+
defaultValue: page,
|
|
361
|
+
className: "w-12",
|
|
362
|
+
onChange: handlePageChange
|
|
363
|
+
}
|
|
364
|
+
)
|
|
365
|
+
] }) : null,
|
|
366
|
+
/* @__PURE__ */ jsx(
|
|
367
|
+
Listbox,
|
|
368
|
+
{
|
|
369
|
+
value: String(pageSize),
|
|
370
|
+
className: "w-auto min-w-min",
|
|
371
|
+
onChange: handlePageSizeChange,
|
|
372
|
+
children: PAGE_SIZES.map((pageSize2) => /* @__PURE__ */ jsxs(ListboxOption, { value: String(pageSize2), children: [
|
|
373
|
+
"Show ",
|
|
374
|
+
pageSize2
|
|
375
|
+
] }, pageSize2))
|
|
376
|
+
}
|
|
377
|
+
)
|
|
378
|
+
] })
|
|
379
|
+
]
|
|
380
|
+
}
|
|
381
|
+
);
|
|
382
|
+
}
|
|
383
|
+
//# sourceMappingURL=DataTable.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../source/components/DataTable.tsx"],
|
|
4
|
+
"sourcesContent": ["import {\n closestCenter,\n DndContext,\n type DragEndEvent,\n KeyboardSensor,\n MouseSensor,\n TouchSensor,\n useSensor,\n useSensors,\n} from '@dnd-kit/core';\nimport {restrictToHorizontalAxis} from '@dnd-kit/modifiers';\nimport {arrayMove, horizontalListSortingStrategy, SortableContext} from '@dnd-kit/sortable';\nimport {\n type ColumnDef,\n type ColumnFiltersState,\n flexRender,\n getCoreRowModel,\n getFacetedMinMaxValues,\n getFacetedRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type PaginationState,\n type RowData,\n type SortingState,\n useReactTable,\n} from '@tanstack/react-table';\nimport {type ChangeEvent, useCallback, useId, useState} from 'react';\nimport {z} from 'zod';\n\nimport {Button} from './Button.js';\nimport {DataTableHeader} from './data-table/DataTableHeader.js';\nimport {DataTablePageButton} from './data-table/DataTablePageButton.js';\nimport {\n DEFAULT_PAGE_SIZE,\n MAX_PAGE_BUTTONS_COUNT,\n PAGE_SIZES,\n} from './data-table/internals/constants.js';\nimport {getCommonPinningClasses} from './data-table/internals/getCommonPinningClasses.js';\nimport {getCommonPinningStyles} from './data-table/internals/getCommonPinningStyles.js';\nimport {Icon} from './Icon.js';\nimport {Input} from './Input.js';\nimport {Listbox} from './Listbox.js';\nimport {ListboxOption} from './ListboxOption.js';\nimport {Table} from './Table.js';\nimport {TableBody} from './TableBody.js';\nimport {TableCell} from './TableCell.js';\nimport {TableFoot} from './TableFoot.js';\nimport {TableHead} from './TableHead.js';\nimport {TableHeader} from './TableHeader.js';\nimport {TableRow} from './TableRow.js';\n\ndeclare module '@tanstack/react-table' {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- false positive\n interface ColumnMeta<TData extends RowData, TValue> {\n filterVariant?: 'range' | 'select' | 'text';\n }\n}\n\ntype PageSize = (typeof PAGE_SIZES)[number];\n\nexport const dataTablePaginationSchema = z.object({\n /** Page number, starts with 1. */\n page: z.number(),\n pageSize: z.union([\n z.literal(PAGE_SIZES[0]),\n z.literal(PAGE_SIZES[1]),\n z.literal(PAGE_SIZES[2]),\n z.literal(PAGE_SIZES[3]),\n z.literal(PAGE_SIZES[4]),\n ]),\n pageCount: z.number(),\n});\n\nexport type DataTablePagination = z.infer<typeof dataTablePaginationSchema>;\n\nexport const dataTableSortingSchema = z.union([\n z.literal(false),\n z.object({\n column: z.string(),\n direction: z.enum(['ascending', 'descending']),\n }),\n]);\n\nexport type DataTableSorting = z.infer<typeof dataTableSortingSchema>;\n\nexport const dataTableFiltersSchema = z.union([\n z.literal(false),\n z\n .object({\n column: z.string(),\n filter: z.union([\n z.string(),\n z.number(),\n z.boolean(),\n z.tuple([z.number().nullable().optional(), z.number().nullable().optional()]),\n ]),\n })\n .array(),\n]);\n\nexport type DataTableFilters = z.infer<typeof dataTableFiltersSchema>;\n\nexport const dataTableFacetingSchema = z.record(\n z.string(),\n z.object({\n values: z.unknown().array().optional(),\n min: z.unknown().optional(),\n max: z.unknown().optional(),\n }),\n);\n\nexport type DataTableFaceting = z.infer<typeof dataTableFacetingSchema>;\n\nexport type DataTableProps<D, C> = {\n data: D[];\n columns: C;\n pagination?: DataTablePagination | undefined;\n onPagination?:\n | ((\n pagination: Pick<DataTablePagination, 'page'> | Pick<DataTablePagination, 'pageSize'>,\n ) => void)\n | undefined;\n sorting?: DataTableSorting | undefined;\n onSorting?: ((sorting: DataTableSorting) => void) | undefined;\n filters?: DataTableFilters | undefined;\n onFiltering?: ((filters: DataTableFilters) => void) | undefined;\n faceting?: DataTableFaceting | undefined;\n};\n\nexport function DataTable<D extends RowData, C extends Array<ColumnDef<D>>>({\n data,\n columns,\n pagination: controlledPagination,\n onPagination,\n sorting: controlledSorting,\n onSorting,\n filters: controlledFilters,\n onFiltering,\n faceting,\n}: DataTableProps<D, C>) {\n let [pagination, setPagination] = useState<PaginationState>({\n pageIndex: 0,\n pageSize: DEFAULT_PAGE_SIZE,\n });\n let [columnVisibility, setColumnVisibility] = useState({});\n let [columnOrder, setColumnOrder] = useState<string[]>(\n columns.map((column) => {\n if (column.id) {\n return column.id;\n }\n\n if ('accessorKey' in column) {\n return String(column.accessorKey);\n }\n\n if (typeof column.header === 'string') {\n return String(column.header);\n }\n\n return '';\n }),\n );\n let [columnPinning, setColumnPinning] = useState({});\n let [sorting, setSorting] = useState<SortingState>([]);\n let [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n\n let table = useReactTable<D>({\n data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getPaginationRowModel: onPagination ? undefined : getPaginationRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n // getFacetedRowModel: onPagination ? undefined : getFacetedRowModel(),\n // getFacetedUniqueValues: onPagination ? undefined : getFacetedUniqueValues(),\n // getFacetedMinMaxValues: onPagination ? undefined : getFacetedMinMaxValues(),\n getFacetedRowModel: getFacetedRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n getFacetedMinMaxValues: getFacetedMinMaxValues(),\n state: {\n pagination: onPagination ? undefined : pagination,\n columnVisibility,\n columnOrder,\n columnPinning,\n sorting: onSorting ? undefined : sorting,\n columnFilters: onFiltering ? undefined : columnFilters,\n },\n onPaginationChange: onPagination ? undefined : setPagination,\n onColumnVisibilityChange: setColumnVisibility,\n onColumnOrderChange: setColumnOrder,\n onColumnPinningChange: setColumnPinning,\n onSortingChange: onSorting ? undefined : setSorting,\n onColumnFiltersChange: onFiltering ? undefined : setColumnFilters,\n columnResizeMode: 'onChange',\n });\n let handleDragEnd = useCallback(({active, over}: DragEndEvent) => {\n if (over && active.id !== over.id) {\n setColumnOrder((previousColumnOrder) => {\n let oldIndex = previousColumnOrder.indexOf(active.id as string);\n let newIndex = previousColumnOrder.indexOf(over.id as string);\n\n return arrayMove(previousColumnOrder, oldIndex, newIndex);\n });\n }\n }, []);\n\n let sensors = useSensors(\n useSensor(MouseSensor, {\n activationConstraint: {\n distance: 5,\n },\n }),\n useSensor(TouchSensor, {\n activationConstraint: {\n distance: 5,\n },\n }),\n useSensor(KeyboardSensor, {}),\n );\n\n let page =\n onPagination && controlledPagination ?\n controlledPagination.page\n : table.getState().pagination.pageIndex + 1;\n let pageSize =\n onPagination && controlledPagination ?\n controlledPagination.pageSize\n : table.getState().pagination.pageSize;\n let pageCount =\n onPagination && controlledPagination ? controlledPagination.pageCount : table.getPageCount();\n let isFirstPage = page === 1;\n let isLastPage = page >= pageCount;\n\n let handlePageClick = useCallback(\n (page: number) => {\n if (onPagination && controlledPagination) {\n onPagination({\n page: Math.max(1, Math.min(page, pageCount)),\n });\n } else {\n table.setPageIndex(Math.max(0, Math.min(page - 1, pageCount)));\n }\n },\n [controlledPagination, onPagination, pageCount, table],\n );\n\n let handleFirstPageClick = useCallback(() => {\n if (onPagination && controlledPagination) {\n onPagination({\n page: 1,\n });\n } else {\n table.firstPage();\n }\n }, [controlledPagination, onPagination, table]);\n\n let handleLastPageClick = useCallback(() => {\n if (onPagination && controlledPagination) {\n onPagination({\n page: pageCount,\n });\n } else {\n table.lastPage();\n }\n }, [controlledPagination, onPagination, pageCount, table]);\n\n let handlePreviousPageClick = useCallback(() => {\n if (onPagination && controlledPagination) {\n onPagination({\n page: Math.max(1, Math.min(page - 1, pageCount)),\n });\n } else {\n table.previousPage();\n }\n }, [controlledPagination, onPagination, page, pageCount, table]);\n\n let handleNextPageClick = useCallback(() => {\n if (onPagination && controlledPagination) {\n onPagination({\n page: Math.max(1, Math.min(page + 1, pageCount)),\n });\n } else {\n table.nextPage();\n }\n }, [controlledPagination, onPagination, page, pageCount, table]);\n\n let handlePageChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n let pageIndex = event.target.value ? Number(event.target.value) - 1 : 0;\n\n if (onPagination && controlledPagination) {\n onPagination({\n page: Math.max(1, Math.min(pageIndex + 1, pageCount)),\n });\n } else {\n table.setPageIndex(pageIndex);\n }\n },\n [controlledPagination, onPagination, pageCount, table],\n );\n\n let handlePageSizeChange = useCallback(\n (pageSize: string) => {\n if (onPagination && controlledPagination) {\n onPagination({\n pageSize: Number(pageSize) as PageSize,\n });\n } else {\n table.setPageSize(Number(pageSize));\n }\n },\n [controlledPagination, onPagination, table],\n );\n\n let id = useId();\n\n console.log('DataTable...', 'controlledFilters', controlledFilters);\n console.log('faceting', faceting);\n\n return (\n <DndContext\n id={id}\n collisionDetection={closestCenter}\n modifiers={[restrictToHorizontalAxis]}\n sensors={sensors}\n onDragEnd={handleDragEnd}\n >\n <Table\n style={{\n width: table.getCenterTotalSize(),\n tableLayout: 'fixed',\n }}\n >\n <TableHead>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n <SortableContext items={columnOrder} strategy={horizontalListSortingStrategy}>\n {headerGroup.headers.map((header) => (\n <DataTableHeader\n key={header.id}\n header={header}\n table={table}\n sorting={controlledSorting}\n onSorting={onSorting}\n filters={controlledFilters}\n onFiltering={onFiltering}\n faceting={faceting}\n />\n ))}\n </SortableContext>\n </TableRow>\n ))}\n </TableHead>\n <TableBody>\n {table.getRowModel().rows.map((row) => (\n <TableRow key={row.id}>\n {row.getVisibleCells().map((cell) => (\n <TableCell\n key={cell.id}\n className={getCommonPinningClasses(cell.column)}\n style={{...getCommonPinningStyles(cell.column)}}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n ))}\n </TableRow>\n ))}\n </TableBody>\n <TableFoot>\n {table.getFooterGroups().map((footerGroup) => (\n <TableRow key={footerGroup.id}>\n {footerGroup.headers.map((header) => (\n <TableHeader key={header.id}>\n {header.isPlaceholder ? null : (\n flexRender(header.column.columnDef.footer, header.getContext())\n )}\n </TableHeader>\n ))}\n </TableRow>\n ))}\n </TableFoot>\n </Table>\n <div className=\"flex items-center gap-x-4 text-sm justify-center\">\n <span className=\"flex items-center gap-x-2\">\n <Button\n variant=\"outline\"\n aria-label=\"First page\"\n disabled={isFirstPage}\n onClick={handleFirstPageClick}\n >\n <Icon name=\"ChevronDoubleLeft\" />\n </Button>\n <Button\n variant=\"outline\"\n aria-label=\"Previous page\"\n disabled={isFirstPage}\n onClick={handlePreviousPageClick}\n >\n <Icon name=\"ChevronLeft\" />\n </Button>\n\n {pageCount <= MAX_PAGE_BUTTONS_COUNT ?\n Array.from({length: pageCount}).map((_, index) => (\n <DataTablePageButton\n // eslint-disable-next-line react/no-array-index-key -- needed, there is no other value\n key={index}\n page={index + 1}\n isSelected={page === index + 1}\n onClick={handlePageClick}\n />\n ))\n : null}\n\n <Button\n variant=\"outline\"\n aria-label=\"Next page\"\n disabled={isLastPage}\n onClick={handleNextPageClick}\n >\n <Icon name=\"ChevronRight\" />\n </Button>\n <Button\n variant=\"outline\"\n aria-label=\"Last page\"\n disabled={isLastPage}\n onClick={handleLastPageClick}\n >\n <Icon name=\"ChevronDoubleRight\" />\n </Button>\n </span>\n {pageCount > MAX_PAGE_BUTTONS_COUNT ?\n <span className=\"flex items-center gap-1\">\n Page {page} of {pageCount}\n </span>\n : null}\n {pageCount > MAX_PAGE_BUTTONS_COUNT ?\n <span className=\"flex items-center gap-1\">\n Go to page:\n <Input\n type=\"text\"\n pattern=\"[0-9]*\"\n defaultValue={page}\n className=\"w-12\"\n onChange={handlePageChange}\n />\n </span>\n : null}\n <Listbox\n value={String(pageSize)}\n className=\"w-auto min-w-min\"\n onChange={handlePageSizeChange}\n >\n {PAGE_SIZES.map((pageSize) => (\n <ListboxOption key={pageSize} value={String(pageSize)}>\n Show {pageSize}\n </ListboxOption>\n ))}\n </Listbox>\n </div>\n </DndContext>\n );\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["page", "pageSize"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ElementType, type PropsWithChildren, type Ref } from 'react';
|
|
2
|
+
import { type ComponentProps, type ComponentTheme } from '../theme/internals.js';
|
|
3
|
+
export declare const useDescriptionTheme: (() => (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string) & {
|
|
4
|
+
componentThemeName: "Description";
|
|
5
|
+
themeDefinition: undefined;
|
|
6
|
+
};
|
|
7
|
+
export type DescriptionProps<T extends ElementType> = PropsWithChildren<ComponentProps<typeof useDescriptionTheme> & ComponentPropsWithoutRef<T> & {
|
|
8
|
+
as?: T | undefined;
|
|
9
|
+
className?: string | undefined;
|
|
10
|
+
}>;
|
|
11
|
+
export declare const Description: <T extends ElementType = "p">(props: import("react").PropsWithoutRef<import("react").ComponentProps<T>> & {
|
|
12
|
+
as?: T | undefined;
|
|
13
|
+
className?: string | undefined;
|
|
14
|
+
} & {
|
|
15
|
+
children?: import("react").ReactNode;
|
|
16
|
+
} & {
|
|
17
|
+
ref?: Ref<HTMLElement> | undefined;
|
|
18
|
+
}) => import("react").ReactNode;
|
|
19
|
+
export declare const descriptionTheme: ComponentTheme<typeof useDescriptionTheme>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import {
|
|
4
|
+
Description as HeadlessDescription
|
|
5
|
+
} from "@headlessui/react";
|
|
6
|
+
import {
|
|
7
|
+
createComponentTheme
|
|
8
|
+
} from "../theme/internals.js";
|
|
9
|
+
import { filterProps, forwardRef } from "./internals.js";
|
|
10
|
+
export const useDescriptionTheme = createComponentTheme("Description");
|
|
11
|
+
const DESCRIPTION_ELEMENT = "p";
|
|
12
|
+
export const Description = forwardRef(
|
|
13
|
+
({ as = DESCRIPTION_ELEMENT, className, children, ...rest }, ref) => {
|
|
14
|
+
let theme = useDescriptionTheme();
|
|
15
|
+
let props = filterProps({
|
|
16
|
+
as,
|
|
17
|
+
ref,
|
|
18
|
+
className: theme(null, className),
|
|
19
|
+
"data-component": "description",
|
|
20
|
+
...rest
|
|
21
|
+
});
|
|
22
|
+
return /* @__PURE__ */ jsx(HeadlessDescription, { ...props, children });
|
|
23
|
+
}
|
|
24
|
+
);
|
|
25
|
+
export const descriptionTheme = {
|
|
26
|
+
className: "font-sans text-sm"
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=Description.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../source/components/Description.tsx"],
|
|
4
|
+
"sourcesContent": ["import {\n Description as HeadlessDescription,\n type DescriptionProps as HeadlessDescriptionProps,\n} from '@headlessui/react';\nimport {\n type ComponentPropsWithoutRef,\n type ElementType,\n type PropsWithChildren,\n type Ref,\n} from 'react';\n\nimport {\n type ComponentProps,\n type ComponentTheme,\n createComponentTheme,\n} from '../theme/internals.js';\nimport {filterProps, forwardRef} from './internals.js';\n\nexport const useDescriptionTheme = createComponentTheme('Description');\n\nconst DESCRIPTION_ELEMENT = 'p';\n\nexport type DescriptionProps<T extends ElementType> = PropsWithChildren<\n ComponentProps<typeof useDescriptionTheme> &\n ComponentPropsWithoutRef<T> & {\n as?: T | undefined;\n className?: string | undefined;\n }\n>;\n\nexport const Description = forwardRef(\n <T extends ElementType = typeof DESCRIPTION_ELEMENT>(\n {as = DESCRIPTION_ELEMENT as T, className, children, ...rest}: DescriptionProps<T>,\n ref: Ref<HTMLElement>,\n ) => {\n let theme = useDescriptionTheme();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n let props: HeadlessDescriptionProps<any> = filterProps({\n as,\n ref,\n className: theme(null, className),\n 'data-component': 'description',\n ...rest,\n });\n\n return <HeadlessDescription {...props}>{children}</HeadlessDescription>;\n },\n);\n\nexport const descriptionTheme: ComponentTheme<typeof useDescriptionTheme> = {\n className: 'font-sans text-sm',\n};\n"],
|
|
5
|
+
"mappings": ";AA6CW;AA7CX;AAAA,EACE,eAAe;AAAA,OAEV;AAQP;AAAA,EAGE;AAAA,OACK;AACP,SAAQ,aAAa,kBAAiB;AAE/B,aAAM,sBAAsB,qBAAqB,aAAa;AAErE,MAAM,sBAAsB;AAUrB,aAAM,cAAc;AAAA,EACzB,CACE,EAAC,KAAK,qBAA0B,WAAW,UAAU,GAAG,KAAI,GAC5D,QACG;AACH,QAAI,QAAQ,oBAAoB;AAEhC,QAAI,QAAuC,YAAY;AAAA,MACrD;AAAA,MACA;AAAA,MACA,WAAW,MAAM,MAAM,SAAS;AAAA,MAChC,kBAAkB;AAAA,MAClB,GAAG;AAAA,IACL,CAAC;AAED,WAAO,oBAAC,uBAAqB,GAAG,OAAQ,UAAS;AAAA,EACnD;AACF;AAEO,aAAM,mBAA+D;AAAA,EAC1E,WAAW;AACb;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ElementType, type PropsWithChildren, type Ref } from 'react';
|
|
2
|
+
import { type ComponentProps, type ComponentTheme } from '../theme/internals.js';
|
|
3
|
+
export declare const useDialogTheme: (() => {
|
|
4
|
+
root: (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string;
|
|
5
|
+
backdrop: (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string;
|
|
6
|
+
}) & {
|
|
7
|
+
componentThemeName: "Dialog";
|
|
8
|
+
themeDefinition: {
|
|
9
|
+
readonly elements: ["root", "backdrop"];
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
export type DialogProps<T extends ElementType> = PropsWithChildren<ComponentProps<typeof useDialogTheme> & ComponentPropsWithoutRef<T> & {
|
|
13
|
+
as?: T | undefined;
|
|
14
|
+
open: boolean;
|
|
15
|
+
static?: boolean | undefined;
|
|
16
|
+
autoFocus?: boolean | undefined;
|
|
17
|
+
className?: string;
|
|
18
|
+
onClose?: () => void;
|
|
19
|
+
}>;
|
|
20
|
+
export declare const Dialog: <T extends ElementType = "div">(props: import("react").PropsWithoutRef<import("react").ComponentProps<T>> & {
|
|
21
|
+
as?: T | undefined;
|
|
22
|
+
open: boolean;
|
|
23
|
+
static?: boolean | undefined;
|
|
24
|
+
autoFocus?: boolean | undefined;
|
|
25
|
+
className?: string | undefined;
|
|
26
|
+
onClose?: (() => void) | undefined;
|
|
27
|
+
} & {
|
|
28
|
+
children?: import("react").ReactNode;
|
|
29
|
+
} & {
|
|
30
|
+
ref?: Ref<HTMLElement> | undefined;
|
|
31
|
+
}) => import("react").ReactNode;
|
|
32
|
+
export declare const dialogTheme: ComponentTheme<typeof useDialogTheme>;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import {
|
|
4
|
+
Dialog as HeadlessDialog,
|
|
5
|
+
DialogBackdrop as HeadlessDialogBackdrop
|
|
6
|
+
} from "@headlessui/react";
|
|
7
|
+
import {
|
|
8
|
+
useCallback
|
|
9
|
+
} from "react";
|
|
10
|
+
import {
|
|
11
|
+
createComponentTheme
|
|
12
|
+
} from "../theme/internals.js";
|
|
13
|
+
import { filterProps, forwardRef } from "./internals.js";
|
|
14
|
+
export const useDialogTheme = createComponentTheme("Dialog", {
|
|
15
|
+
elements: ["root", "backdrop"]
|
|
16
|
+
});
|
|
17
|
+
const DIALOG_ELEMENT = "div";
|
|
18
|
+
export const Dialog = forwardRef(
|
|
19
|
+
({
|
|
20
|
+
as = DIALOG_ELEMENT,
|
|
21
|
+
open,
|
|
22
|
+
static: isStatic,
|
|
23
|
+
autoFocus,
|
|
24
|
+
className,
|
|
25
|
+
onClose,
|
|
26
|
+
children,
|
|
27
|
+
...rest
|
|
28
|
+
}, ref) => {
|
|
29
|
+
let theme = useDialogTheme();
|
|
30
|
+
let handleClose = useCallback(() => {
|
|
31
|
+
onClose?.();
|
|
32
|
+
}, [onClose]);
|
|
33
|
+
let props = filterProps({
|
|
34
|
+
as,
|
|
35
|
+
ref,
|
|
36
|
+
open,
|
|
37
|
+
static: isStatic,
|
|
38
|
+
transition: true,
|
|
39
|
+
onClose: handleClose,
|
|
40
|
+
"data-component": "dialog",
|
|
41
|
+
...rest
|
|
42
|
+
});
|
|
43
|
+
return /* @__PURE__ */ jsxs(HeadlessDialog, { ...props, children: [
|
|
44
|
+
/* @__PURE__ */ jsx(HeadlessDialogBackdrop, { transition: true, className: theme.backdrop("fixed inset-0") }),
|
|
45
|
+
/* @__PURE__ */ jsx("div", { className: theme.root("fixed inset-0", className), children })
|
|
46
|
+
] });
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
export const dialogTheme = {
|
|
50
|
+
classNames: {
|
|
51
|
+
root: "flex w-screen items-center justify-center p-4 z-30",
|
|
52
|
+
backdrop: "bg-black/30 z-30"
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=Dialog.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../source/components/Dialog.tsx"],
|
|
4
|
+
"sourcesContent": ["import {\n Dialog as HeadlessDialog,\n DialogBackdrop as HeadlessDialogBackdrop,\n type DialogProps as HeadlessDialogProps,\n} from '@headlessui/react';\nimport {\n type ComponentPropsWithoutRef,\n type ElementType,\n type PropsWithChildren,\n type Ref,\n useCallback,\n} from 'react';\n\nimport {\n type ComponentProps,\n type ComponentTheme,\n createComponentTheme,\n} from '../theme/internals.js';\nimport {filterProps, forwardRef} from './internals.js';\n\nexport const useDialogTheme = createComponentTheme('Dialog', {\n elements: ['root', 'backdrop'],\n});\n\nconst DIALOG_ELEMENT = 'div';\n\nexport type DialogProps<T extends ElementType> = PropsWithChildren<\n ComponentProps<typeof useDialogTheme> &\n ComponentPropsWithoutRef<T> & {\n as?: T | undefined;\n open: boolean;\n static?: boolean | undefined;\n autoFocus?: boolean | undefined;\n className?: string;\n onClose?: () => void;\n }\n>;\n\nexport const Dialog = forwardRef(\n <T extends ElementType = typeof DIALOG_ELEMENT>(\n {\n as = DIALOG_ELEMENT as T,\n open,\n static: isStatic,\n autoFocus,\n className,\n onClose,\n children,\n ...rest\n }: DialogProps<T>,\n ref: Ref<HTMLElement>,\n ) => {\n let theme = useDialogTheme();\n\n let handleClose = useCallback(() => {\n onClose?.();\n }, [onClose]);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n let props: HeadlessDialogProps<any> = filterProps({\n as,\n ref,\n open,\n static: isStatic,\n transition: true,\n onClose: handleClose,\n 'data-component': 'dialog',\n ...rest,\n });\n\n return (\n <HeadlessDialog {...props}>\n <HeadlessDialogBackdrop transition className={theme.backdrop('fixed inset-0')} />\n <div className={theme.root('fixed inset-0', className)}>{children}</div>\n </HeadlessDialog>\n );\n },\n);\n\nexport const dialogTheme: ComponentTheme<typeof useDialogTheme> = {\n classNames: {\n root: 'flex w-screen items-center justify-center p-4 z-30',\n backdrop: 'bg-black/30 z-30',\n },\n};\n"],
|
|
5
|
+
"mappings": ";AAuEM,SACE,KADF;AAvEN;AAAA,EACE,UAAU;AAAA,EACV,kBAAkB;AAAA,OAEb;AACP;AAAA,EAKE;AAAA,OACK;AAEP;AAAA,EAGE;AAAA,OACK;AACP,SAAQ,aAAa,kBAAiB;AAE/B,aAAM,iBAAiB,qBAAqB,UAAU;AAAA,EAC3D,UAAU,CAAC,QAAQ,UAAU;AAC/B,CAAC;AAED,MAAM,iBAAiB;AAchB,aAAM,SAAS;AAAA,EACpB,CACE;AAAA,IACE,KAAK;AAAA,IACL;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,QAAI,QAAQ,eAAe;AAE3B,QAAI,cAAc,YAAY,MAAM;AAClC,gBAAU;AAAA,IACZ,GAAG,CAAC,OAAO,CAAC;AAGZ,QAAI,QAAkC,YAAY;AAAA,MAChD;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,kBAAkB;AAAA,MAClB,GAAG;AAAA,IACL,CAAC;AAED,WACE,qBAAC,kBAAgB,GAAG,OAClB;AAAA,0BAAC,0BAAuB,YAAU,MAAC,WAAW,MAAM,SAAS,eAAe,GAAG;AAAA,MAC/E,oBAAC,SAAI,WAAW,MAAM,KAAK,iBAAiB,SAAS,GAAI,UAAS;AAAA,OACpE;AAAA,EAEJ;AACF;AAEO,aAAM,cAAqD;AAAA,EAChE,YAAY;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA,EACZ;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ElementType, type PropsWithChildren, type Ref } from 'react';
|
|
2
|
+
import { type ComponentProps, type ComponentTheme } from '../theme/internals.js';
|
|
3
|
+
export declare const useDialogPanelTheme: (() => (baseClassName?: import("../theme/internals.js").ClassName, overrideClassName?: import("../theme/internals.js").ClassName) => string) & {
|
|
4
|
+
componentThemeName: "DialogPanel";
|
|
5
|
+
themeDefinition: undefined;
|
|
6
|
+
};
|
|
7
|
+
export type DialogPanelProps<T extends ElementType> = PropsWithChildren<ComponentProps<typeof useDialogPanelTheme> & ComponentPropsWithoutRef<T> & {
|
|
8
|
+
as?: T | undefined;
|
|
9
|
+
className?: string;
|
|
10
|
+
}>;
|
|
11
|
+
export declare const DialogPanel: <T extends ElementType = "div">(props: import("react").PropsWithoutRef<import("react").ComponentProps<T>> & {
|
|
12
|
+
as?: T | undefined;
|
|
13
|
+
className?: string | undefined;
|
|
14
|
+
} & {
|
|
15
|
+
children?: import("react").ReactNode;
|
|
16
|
+
} & {
|
|
17
|
+
ref?: Ref<HTMLElement> | undefined;
|
|
18
|
+
}) => import("react").ReactNode;
|
|
19
|
+
export declare const dialogPanelTheme: ComponentTheme<typeof useDialogPanelTheme>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import {
|
|
4
|
+
DialogPanel as HeadlessDialogPanel
|
|
5
|
+
} from "@headlessui/react";
|
|
6
|
+
import {
|
|
7
|
+
createComponentTheme
|
|
8
|
+
} from "../theme/internals.js";
|
|
9
|
+
import { filterProps, forwardRef } from "./internals.js";
|
|
10
|
+
export const useDialogPanelTheme = createComponentTheme("DialogPanel");
|
|
11
|
+
const DIALOG_PANEL_ELEMENT = "div";
|
|
12
|
+
export const DialogPanel = forwardRef(
|
|
13
|
+
({ as = DIALOG_PANEL_ELEMENT, className, children, ...rest }, ref) => {
|
|
14
|
+
let theme = useDialogPanelTheme();
|
|
15
|
+
let props = filterProps({
|
|
16
|
+
as,
|
|
17
|
+
ref,
|
|
18
|
+
className: theme(null, className),
|
|
19
|
+
transition: true,
|
|
20
|
+
"data-component": "dialog-panel",
|
|
21
|
+
...rest
|
|
22
|
+
});
|
|
23
|
+
return /* @__PURE__ */ jsx(HeadlessDialogPanel, { ...props, children });
|
|
24
|
+
}
|
|
25
|
+
);
|
|
26
|
+
export const dialogPanelTheme = {
|
|
27
|
+
className: "shadow-1 relative flex w-full min-w-[300px] max-w-[900px] flex-col gap-y-6 rounded-4 bg-white p-6 max-h-[calc(100vh-3rem)] overflow-hidden overflow-y-auto"
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=DialogPanel.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../source/components/DialogPanel.tsx"],
|
|
4
|
+
"sourcesContent": ["import {\n DialogPanel as HeadlessDialogPanel,\n type DialogPanelProps as HeadlessDialogPanelProps,\n} from '@headlessui/react';\nimport {\n type ComponentPropsWithoutRef,\n type ElementType,\n type PropsWithChildren,\n type Ref,\n} from 'react';\n\nimport {\n type ComponentProps,\n type ComponentTheme,\n createComponentTheme,\n} from '../theme/internals.js';\nimport {filterProps, forwardRef} from './internals.js';\n\nexport const useDialogPanelTheme = createComponentTheme('DialogPanel');\n\nconst DIALOG_PANEL_ELEMENT = 'div';\n\nexport type DialogPanelProps<T extends ElementType> = PropsWithChildren<\n ComponentProps<typeof useDialogPanelTheme> &\n ComponentPropsWithoutRef<T> & {\n as?: T | undefined;\n className?: string;\n }\n>;\n\nexport const DialogPanel = forwardRef(\n <T extends ElementType = typeof DIALOG_PANEL_ELEMENT>(\n {as = DIALOG_PANEL_ELEMENT as T, className, children, ...rest}: DialogPanelProps<T>,\n ref: Ref<HTMLElement>,\n ) => {\n let theme = useDialogPanelTheme();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- needed\n let props: HeadlessDialogPanelProps<any> = filterProps({\n as,\n ref,\n className: theme(null, className),\n transition: true,\n 'data-component': 'dialog-panel',\n ...rest,\n });\n\n return <HeadlessDialogPanel {...props}>{children}</HeadlessDialogPanel>;\n },\n);\n\nexport const dialogPanelTheme: ComponentTheme<typeof useDialogPanelTheme> = {\n className:\n 'shadow-1 relative flex w-full min-w-[300px] max-w-[900px] flex-col gap-y-6 rounded-4 bg-white p-6 max-h-[calc(100vh-3rem)] overflow-hidden overflow-y-auto',\n};\n"],
|
|
5
|
+
"mappings": ";AA8CW;AA9CX;AAAA,EACE,eAAe;AAAA,OAEV;AAQP;AAAA,EAGE;AAAA,OACK;AACP,SAAQ,aAAa,kBAAiB;AAE/B,aAAM,sBAAsB,qBAAqB,aAAa;AAErE,MAAM,uBAAuB;AAUtB,aAAM,cAAc;AAAA,EACzB,CACE,EAAC,KAAK,sBAA2B,WAAW,UAAU,GAAG,KAAI,GAC7D,QACG;AACH,QAAI,QAAQ,oBAAoB;AAEhC,QAAI,QAAuC,YAAY;AAAA,MACrD;AAAA,MACA;AAAA,MACA,WAAW,MAAM,MAAM,SAAS;AAAA,MAChC,YAAY;AAAA,MACZ,kBAAkB;AAAA,MAClB,GAAG;AAAA,IACL,CAAC;AAED,WAAO,oBAAC,uBAAqB,GAAG,OAAQ,UAAS;AAAA,EACnD;AACF;AAEO,aAAM,mBAA+D;AAAA,EAC1E,WACE;AACJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|