@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,21 @@
|
|
|
1
|
+
import {DEFAULT_STOP, DEFAULT_STOPS} from './constants.js';
|
|
2
|
+
|
|
3
|
+
export function createSaturationScale(tweak = 0, stop: number = DEFAULT_STOP) {
|
|
4
|
+
let stops: number[] = DEFAULT_STOPS as unknown as number[];
|
|
5
|
+
let index = stops.indexOf(stop);
|
|
6
|
+
|
|
7
|
+
if (index === -1) {
|
|
8
|
+
throw new Error(`Invalid key value: ${stop}`);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
return stops.map((stop) => {
|
|
12
|
+
let diff = Math.abs(stops.indexOf(stop) - index);
|
|
13
|
+
let tweakValue = tweak ? Math.round((diff + 1) * tweak * (1 + diff / 10)) : 0;
|
|
14
|
+
|
|
15
|
+
if (tweakValue > 100) {
|
|
16
|
+
return {stop, tweak: 100};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return {stop, tweak: tweakValue};
|
|
20
|
+
});
|
|
21
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import {clamp} from './clamp.js';
|
|
2
|
+
import {createDistributionValues} from './createDistributionValues.js';
|
|
3
|
+
import {createHueScale} from './createHueScale.js';
|
|
4
|
+
import {createSaturationScale} from './createSaturationScale.js';
|
|
5
|
+
import {hexToHsl} from './hexToHsl.js';
|
|
6
|
+
import {hslToHex} from './hslToHex.js';
|
|
7
|
+
import {type PaletteConfig} from './PaletteConfig.js';
|
|
8
|
+
import {unsignedModulo} from './unsignedModulo.js';
|
|
9
|
+
|
|
10
|
+
export function createSwatches(palette: PaletteConfig) {
|
|
11
|
+
let hueScale = createHueScale(palette.h, palette.valueStop);
|
|
12
|
+
let saturationScale = createSaturationScale(palette.s, palette.valueStop);
|
|
13
|
+
let {h, s, l} = hexToHsl(palette.value);
|
|
14
|
+
let distributionScale = createDistributionValues(l, palette.valueStop);
|
|
15
|
+
|
|
16
|
+
let swatches = hueScale.map(({stop}, stopIndex) => {
|
|
17
|
+
let newH = unsignedModulo(h + hueScale[stopIndex]!.tweak, 360);
|
|
18
|
+
let newS = clamp(s + saturationScale[stopIndex]!.tweak, 0, 100);
|
|
19
|
+
let newL = clamp(distributionScale[stopIndex]!.value, 0.1, 99.9); // this is to make sure the first two or last two swatches (the first being total white and the last being total black) aren't the same lightness
|
|
20
|
+
let newHex = hslToHex(newH, newS, newL);
|
|
21
|
+
|
|
22
|
+
return {
|
|
23
|
+
stop,
|
|
24
|
+
hex: stop === palette.valueStop ? palette.value.toUpperCase() : newHex.toUpperCase(),
|
|
25
|
+
h: newH,
|
|
26
|
+
hScale: ((unsignedModulo(hueScale[stopIndex]!.tweak + 180, 360) - 180) / 180) * 50,
|
|
27
|
+
s: newS,
|
|
28
|
+
sScale: newS - 50,
|
|
29
|
+
l: newL,
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
return swatches;
|
|
34
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import {hexToRgb} from './hexToRgb.js';
|
|
2
|
+
|
|
3
|
+
export function hexToHsl(rawHex: string) {
|
|
4
|
+
let hex = rawHex;
|
|
5
|
+
|
|
6
|
+
if (hex.length === 6 && !hex.startsWith(`#`)) {
|
|
7
|
+
hex = `#${hex}`;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
let {r, g, b} = hexToRgb(hex);
|
|
11
|
+
|
|
12
|
+
r /= 255;
|
|
13
|
+
g /= 255;
|
|
14
|
+
b /= 255;
|
|
15
|
+
|
|
16
|
+
let cmin = Math.min(r, g, b);
|
|
17
|
+
let cmax = Math.max(r, g, b);
|
|
18
|
+
let delta = cmax - cmin;
|
|
19
|
+
let h = 0;
|
|
20
|
+
let s = 0;
|
|
21
|
+
let l = 0;
|
|
22
|
+
|
|
23
|
+
if (delta === 0) {
|
|
24
|
+
h = 0;
|
|
25
|
+
} else if (cmax === r) {
|
|
26
|
+
h = ((g - b) / delta) % 6;
|
|
27
|
+
} else if (cmax === g) {
|
|
28
|
+
h = (b - r) / delta + 2;
|
|
29
|
+
} else {
|
|
30
|
+
h = (r - g) / delta + 4;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
h = Math.round(h * 60);
|
|
34
|
+
|
|
35
|
+
if (h < 0) {
|
|
36
|
+
h += 360;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
l = (cmax + cmin) / 2;
|
|
40
|
+
s = delta === 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));
|
|
41
|
+
s = +(s * 100).toFixed(1);
|
|
42
|
+
l = +(l * 100).toFixed(1);
|
|
43
|
+
|
|
44
|
+
return {h, s, l}; // values can be used like this: `hsl(${h}, ${s}%, ${l}%)`
|
|
45
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export function hexToRgb(rawHex: string) {
|
|
2
|
+
let hex = rawHex;
|
|
3
|
+
|
|
4
|
+
if (hex.length === 6 && !hex.startsWith(`#`)) {
|
|
5
|
+
hex = `#${hex}`;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
let r = `0`;
|
|
9
|
+
let g = `0`;
|
|
10
|
+
let b = `0`;
|
|
11
|
+
|
|
12
|
+
if (hex.length === 4) {
|
|
13
|
+
r = `0x${hex[1]}${hex[1]}`;
|
|
14
|
+
g = `0x${hex[2]}${hex[2]}`;
|
|
15
|
+
b = `0x${hex[3]}${hex[3]}`;
|
|
16
|
+
} else if (hex.length === 7) {
|
|
17
|
+
r = `0x${hex[1]}${hex[2]}`;
|
|
18
|
+
g = `0x${hex[3]}${hex[4]}`;
|
|
19
|
+
b = `0x${hex[5]}${hex[6]}`;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return {r: Number(r), g: Number(g), b: Number(b)};
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import {hslToRgb} from './hslToRgb.js';
|
|
2
|
+
|
|
3
|
+
export function hslToHex(h: number, s: number, l: number) {
|
|
4
|
+
let {r, g, b} = hslToRgb(h, s, l);
|
|
5
|
+
|
|
6
|
+
let rHex = r.toString(16);
|
|
7
|
+
let gHex = g.toString(16);
|
|
8
|
+
let bHex = b.toString(16);
|
|
9
|
+
|
|
10
|
+
if (rHex.length === 1) {
|
|
11
|
+
rHex = `0${rHex}`;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
if (gHex.length === 1) {
|
|
15
|
+
gHex = `0${gHex}`;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
if (bHex.length === 1) {
|
|
19
|
+
bHex = `0${bHex}`;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return `#${rHex}${gHex}${bHex}`;
|
|
23
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export function hslToRgb(h: number, rawS: number, rawL: number) {
|
|
2
|
+
let s = rawS / 100;
|
|
3
|
+
let l = rawL / 100;
|
|
4
|
+
|
|
5
|
+
let c = (1 - Math.abs(2 * l - 1)) * s;
|
|
6
|
+
let x = c * (1 - Math.abs(((h / 60) % 2) - 1));
|
|
7
|
+
let m = l - c / 2;
|
|
8
|
+
let r = 0;
|
|
9
|
+
let g = 0;
|
|
10
|
+
let b = 0;
|
|
11
|
+
|
|
12
|
+
if (h >= 0 && h < 60) {
|
|
13
|
+
r = c;
|
|
14
|
+
g = x;
|
|
15
|
+
b = 0;
|
|
16
|
+
} else if (h >= 60 && h < 120) {
|
|
17
|
+
r = x;
|
|
18
|
+
g = c;
|
|
19
|
+
b = 0;
|
|
20
|
+
} else if (h >= 120 && h < 180) {
|
|
21
|
+
r = 0;
|
|
22
|
+
g = c;
|
|
23
|
+
b = x;
|
|
24
|
+
} else if (h >= 180 && h < 240) {
|
|
25
|
+
r = 0;
|
|
26
|
+
g = x;
|
|
27
|
+
b = c;
|
|
28
|
+
} else if (h >= 240 && h < 300) {
|
|
29
|
+
r = x;
|
|
30
|
+
g = 0;
|
|
31
|
+
b = c;
|
|
32
|
+
} else if (h >= 300 && h < 360) {
|
|
33
|
+
r = c;
|
|
34
|
+
g = 0;
|
|
35
|
+
b = x;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return {
|
|
39
|
+
r: Math.round((r + m) * 255),
|
|
40
|
+
g: Math.round((g + m) * 255),
|
|
41
|
+
b: Math.round((b + m) * 255),
|
|
42
|
+
};
|
|
43
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import module from 'node:module';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
|
|
4
|
+
export function resolveModule(moduleId: string) {
|
|
5
|
+
let require = module.createRequire(import.meta.url);
|
|
6
|
+
let modulePath = path.dirname(require.resolve(`${moduleId}/package.json`));
|
|
7
|
+
|
|
8
|
+
return modulePath;
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './internals/constants.js';
|
|
Binary file
|
|
Binary file
|
package/source/main.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
@font-face {
|
|
2
|
+
font-family: InterVariable;
|
|
3
|
+
font-style: normal;
|
|
4
|
+
font-weight: 100 900;
|
|
5
|
+
font-display: swap;
|
|
6
|
+
src: url('./inter-variable.woff2') format('woff2');
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
@font-face {
|
|
10
|
+
font-family: InterVariable;
|
|
11
|
+
font-style: italic;
|
|
12
|
+
font-weight: 100 900;
|
|
13
|
+
font-display: swap;
|
|
14
|
+
src: url('./inter-variable-italic.woff2') format('woff2');
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@layer base {
|
|
18
|
+
html {
|
|
19
|
+
@apply font-sans text-gray-950;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
* {
|
|
23
|
+
scrollbar-color: theme(colors.gray.200) theme(colors.transparent);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import {type Simplify} from '@jakubmazanec/ts-utils';
|
|
2
|
+
|
|
3
|
+
import {type useButtonTheme} from '../components/Button.js';
|
|
4
|
+
import {type useCardTheme} from '../components/Card.js';
|
|
5
|
+
import {type useCheckboxTheme} from '../components/Checkbox.js';
|
|
6
|
+
import {type useCheckboxFieldTheme} from '../components/CheckboxField.js';
|
|
7
|
+
import {type useComboboxTheme} from '../components/Combobox.js';
|
|
8
|
+
import {type useComboboxOptionTheme} from '../components/ComboboxOption.js';
|
|
9
|
+
import {type useDescriptionTheme} from '../components/Description.js';
|
|
10
|
+
import {type useDialogTheme} from '../components/Dialog.js';
|
|
11
|
+
import {type useDialogPanelTheme} from '../components/DialogPanel.js';
|
|
12
|
+
import {type useDialogTitleTheme} from '../components/DialogTitle.js';
|
|
13
|
+
import {type useErrorTheme} from '../components/Error.js';
|
|
14
|
+
import {type useFieldTheme} from '../components/Field.js';
|
|
15
|
+
import {type useFieldsetTheme} from '../components/Fieldset.js';
|
|
16
|
+
import {type useFormTheme} from '../components/Form.js';
|
|
17
|
+
import {type useIconTheme} from '../components/Icon.js';
|
|
18
|
+
import {type useInputTheme} from '../components/Input.js';
|
|
19
|
+
import {type useLabelTheme} from '../components/Label.js';
|
|
20
|
+
import {type useLegendTheme} from '../components/Legend.js';
|
|
21
|
+
import {type useListboxTheme} from '../components/Listbox.js';
|
|
22
|
+
import {type useListboxOptionTheme} from '../components/ListboxOption.js';
|
|
23
|
+
import {type useMenuTheme} from '../components/Menu.js';
|
|
24
|
+
import {type useMenuButtonTheme} from '../components/MenuButton.js';
|
|
25
|
+
import {type useMenuHeadingTheme} from '../components/MenuHeading.js';
|
|
26
|
+
import {type useMenuItemTheme} from '../components/MenuItem.js';
|
|
27
|
+
import {type useMenuItemsTheme} from '../components/MenuItems.js';
|
|
28
|
+
import {type useMenuSectionTheme} from '../components/MenuSection.js';
|
|
29
|
+
import {type useMenuSeparatorTheme} from '../components/MenuSeparator.js';
|
|
30
|
+
import {type usePopoverTheme} from '../components/Popover.js';
|
|
31
|
+
import {type usePopoverBackdropTheme} from '../components/PopoverBackdrop.js';
|
|
32
|
+
import {type usePopoverButtonTheme} from '../components/PopoverButton.js';
|
|
33
|
+
import {type usePopoverGroupTheme} from '../components/PopoverGroup.js';
|
|
34
|
+
import {type usePopoverPanelTheme} from '../components/PopoverPanel.js';
|
|
35
|
+
import {type useRadioTheme} from '../components/Radio.js';
|
|
36
|
+
import {type useRadioFieldTheme} from '../components/RadioField.js';
|
|
37
|
+
import {type useRadioGroupTheme} from '../components/RadioGroup.js';
|
|
38
|
+
import {type useSpinnerTheme} from '../components/Spinner.js';
|
|
39
|
+
import {type useTableTheme} from '../components/Table.js';
|
|
40
|
+
import {type useTableBodyTheme} from '../components/TableBody.js';
|
|
41
|
+
import {type useTableCaptionTheme} from '../components/TableCaption.js';
|
|
42
|
+
import {type useTableCellTheme} from '../components/TableCell.js';
|
|
43
|
+
import {type useTableFootTheme} from '../components/TableFoot.js';
|
|
44
|
+
import {type useTableHeadTheme} from '../components/TableHead.js';
|
|
45
|
+
import {type useTableHeaderTheme} from '../components/TableHeader.js';
|
|
46
|
+
import {type useTableRowTheme} from '../components/TableRow.js';
|
|
47
|
+
import {type useTextTheme} from '../components/Text.js';
|
|
48
|
+
import {type useTextareaTheme} from '../components/Textarea.js';
|
|
49
|
+
import {type ClassName, type ComponentTheme} from './internals.js';
|
|
50
|
+
|
|
51
|
+
export type Theme = Simplify<
|
|
52
|
+
ComponentTheme<typeof useButtonTheme, {outputComponentName: true}> &
|
|
53
|
+
ComponentTheme<typeof useCardTheme, {outputComponentName: true}> &
|
|
54
|
+
ComponentTheme<typeof useCheckboxFieldTheme, {outputComponentName: true}> &
|
|
55
|
+
ComponentTheme<typeof useCheckboxTheme, {outputComponentName: true}> &
|
|
56
|
+
ComponentTheme<typeof useComboboxOptionTheme, {outputComponentName: true}> &
|
|
57
|
+
ComponentTheme<typeof useComboboxTheme, {outputComponentName: true}> &
|
|
58
|
+
ComponentTheme<typeof useDescriptionTheme, {outputComponentName: true}> &
|
|
59
|
+
ComponentTheme<typeof useDialogPanelTheme, {outputComponentName: true}> &
|
|
60
|
+
ComponentTheme<typeof useDialogTheme, {outputComponentName: true}> &
|
|
61
|
+
ComponentTheme<typeof useDialogTitleTheme, {outputComponentName: true}> &
|
|
62
|
+
ComponentTheme<typeof useErrorTheme, {outputComponentName: true}> &
|
|
63
|
+
ComponentTheme<typeof useFieldsetTheme, {outputComponentName: true}> &
|
|
64
|
+
ComponentTheme<typeof useFieldTheme, {outputComponentName: true}> &
|
|
65
|
+
ComponentTheme<typeof useFormTheme, {outputComponentName: true}> &
|
|
66
|
+
ComponentTheme<typeof useIconTheme, {outputComponentName: true}> &
|
|
67
|
+
ComponentTheme<typeof useInputTheme, {outputComponentName: true}> &
|
|
68
|
+
ComponentTheme<typeof useLabelTheme, {outputComponentName: true}> &
|
|
69
|
+
ComponentTheme<typeof useLegendTheme, {outputComponentName: true}> &
|
|
70
|
+
ComponentTheme<typeof useListboxOptionTheme, {outputComponentName: true}> &
|
|
71
|
+
ComponentTheme<typeof useListboxTheme, {outputComponentName: true}> &
|
|
72
|
+
ComponentTheme<typeof useMenuButtonTheme, {outputComponentName: true}> &
|
|
73
|
+
ComponentTheme<typeof useMenuHeadingTheme, {outputComponentName: true}> &
|
|
74
|
+
ComponentTheme<typeof useMenuItemsTheme, {outputComponentName: true}> &
|
|
75
|
+
ComponentTheme<typeof useMenuItemTheme, {outputComponentName: true}> &
|
|
76
|
+
ComponentTheme<typeof useMenuSectionTheme, {outputComponentName: true}> &
|
|
77
|
+
ComponentTheme<typeof useMenuSeparatorTheme, {outputComponentName: true}> &
|
|
78
|
+
ComponentTheme<typeof useMenuTheme, {outputComponentName: true}> &
|
|
79
|
+
ComponentTheme<typeof usePopoverBackdropTheme, {outputComponentName: true}> &
|
|
80
|
+
ComponentTheme<typeof usePopoverButtonTheme, {outputComponentName: true}> &
|
|
81
|
+
ComponentTheme<typeof usePopoverGroupTheme, {outputComponentName: true}> &
|
|
82
|
+
ComponentTheme<typeof usePopoverPanelTheme, {outputComponentName: true}> &
|
|
83
|
+
ComponentTheme<typeof usePopoverTheme, {outputComponentName: true}> &
|
|
84
|
+
ComponentTheme<typeof useRadioFieldTheme, {outputComponentName: true}> &
|
|
85
|
+
ComponentTheme<typeof useRadioGroupTheme, {outputComponentName: true}> &
|
|
86
|
+
ComponentTheme<typeof useRadioTheme, {outputComponentName: true}> &
|
|
87
|
+
ComponentTheme<typeof useSpinnerTheme, {outputComponentName: true}> &
|
|
88
|
+
ComponentTheme<typeof useTableBodyTheme, {outputComponentName: true}> &
|
|
89
|
+
ComponentTheme<typeof useTableCaptionTheme, {outputComponentName: true}> &
|
|
90
|
+
ComponentTheme<typeof useTableCellTheme, {outputComponentName: true}> &
|
|
91
|
+
ComponentTheme<typeof useTableFootTheme, {outputComponentName: true}> &
|
|
92
|
+
ComponentTheme<typeof useTableHeaderTheme, {outputComponentName: true}> &
|
|
93
|
+
ComponentTheme<typeof useTableHeadTheme, {outputComponentName: true}> &
|
|
94
|
+
ComponentTheme<typeof useTableRowTheme, {outputComponentName: true}> &
|
|
95
|
+
ComponentTheme<typeof useTableTheme, {outputComponentName: true}> &
|
|
96
|
+
ComponentTheme<typeof useTextareaTheme, {outputComponentName: true}> &
|
|
97
|
+
ComponentTheme<typeof useTextTheme, {outputComponentName: true}> & {
|
|
98
|
+
merge: (...rest: ClassName[]) => string;
|
|
99
|
+
}
|
|
100
|
+
>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {type PropsWithChildren} from 'react';
|
|
2
|
+
|
|
3
|
+
import {themeContext} from './internals.js';
|
|
4
|
+
import {type Theme} from './Theme.js';
|
|
5
|
+
|
|
6
|
+
export type ThemeProviderProps = {
|
|
7
|
+
theme: Theme;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export function ThemeProvider({children, theme}: PropsWithChildren<ThemeProviderProps>) {
|
|
11
|
+
return <themeContext.Provider value={theme}>{children}</themeContext.Provider>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import {
|
|
2
|
+
buttonTheme,
|
|
3
|
+
cardTheme,
|
|
4
|
+
checkboxFieldTheme,
|
|
5
|
+
checkboxTheme,
|
|
6
|
+
comboboxOptionTheme,
|
|
7
|
+
comboboxTheme,
|
|
8
|
+
descriptionTheme,
|
|
9
|
+
dialogPanelTheme,
|
|
10
|
+
dialogTheme,
|
|
11
|
+
dialogTitleTheme,
|
|
12
|
+
errorTheme,
|
|
13
|
+
fieldsetnTheme,
|
|
14
|
+
fieldTheme,
|
|
15
|
+
formTheme,
|
|
16
|
+
iconTheme,
|
|
17
|
+
inputTheme,
|
|
18
|
+
labelTheme,
|
|
19
|
+
legendTheme,
|
|
20
|
+
listboxOptionTheme,
|
|
21
|
+
listboxTheme,
|
|
22
|
+
menuButtonTheme,
|
|
23
|
+
menuHeadingTheme,
|
|
24
|
+
menuItemsTheme,
|
|
25
|
+
menuItemTheme,
|
|
26
|
+
menuSectionTheme,
|
|
27
|
+
menuSeparatorTheme,
|
|
28
|
+
menuTheme,
|
|
29
|
+
popoverBackdropTheme,
|
|
30
|
+
popoverButtonTheme,
|
|
31
|
+
popoverGroupTheme,
|
|
32
|
+
popoverPanelTheme,
|
|
33
|
+
popoverTheme,
|
|
34
|
+
radioFieldTheme,
|
|
35
|
+
radioGroupTheme,
|
|
36
|
+
radioTheme,
|
|
37
|
+
spinnerTheme,
|
|
38
|
+
tableBodyTheme,
|
|
39
|
+
tableCaptionTheme,
|
|
40
|
+
tableCellTheme,
|
|
41
|
+
tableFootTheme,
|
|
42
|
+
tableHeaderTheme,
|
|
43
|
+
tableHeadTheme,
|
|
44
|
+
tableRowTheme,
|
|
45
|
+
tableTheme,
|
|
46
|
+
textareaTheme,
|
|
47
|
+
textTheme,
|
|
48
|
+
} from '../components.js';
|
|
49
|
+
import {createTailwindConfig, createTailwindMerge} from '../development.js';
|
|
50
|
+
import {type Theme} from './Theme.js';
|
|
51
|
+
|
|
52
|
+
export const defaultTheme: Theme = {
|
|
53
|
+
Button: buttonTheme,
|
|
54
|
+
Card: cardTheme,
|
|
55
|
+
Checkbox: checkboxTheme,
|
|
56
|
+
CheckboxField: checkboxFieldTheme,
|
|
57
|
+
Combobox: comboboxTheme,
|
|
58
|
+
ComboboxOption: comboboxOptionTheme,
|
|
59
|
+
Description: descriptionTheme,
|
|
60
|
+
Dialog: dialogTheme,
|
|
61
|
+
DialogPanel: dialogPanelTheme,
|
|
62
|
+
DialogTitle: dialogTitleTheme,
|
|
63
|
+
Error: errorTheme,
|
|
64
|
+
Field: fieldTheme,
|
|
65
|
+
Fieldset: fieldsetnTheme,
|
|
66
|
+
Form: formTheme,
|
|
67
|
+
Icon: iconTheme,
|
|
68
|
+
Input: inputTheme,
|
|
69
|
+
Label: labelTheme,
|
|
70
|
+
Legend: legendTheme,
|
|
71
|
+
Listbox: listboxTheme,
|
|
72
|
+
ListboxOption: listboxOptionTheme,
|
|
73
|
+
Menu: menuTheme,
|
|
74
|
+
MenuButton: menuButtonTheme,
|
|
75
|
+
MenuHeading: menuHeadingTheme,
|
|
76
|
+
MenuItem: menuItemTheme,
|
|
77
|
+
MenuItems: menuItemsTheme,
|
|
78
|
+
MenuSection: menuSectionTheme,
|
|
79
|
+
MenuSeparator: menuSeparatorTheme,
|
|
80
|
+
Popover: popoverTheme,
|
|
81
|
+
PopoverBackdrop: popoverBackdropTheme,
|
|
82
|
+
PopoverButton: popoverButtonTheme,
|
|
83
|
+
PopoverGroup: popoverGroupTheme,
|
|
84
|
+
PopoverPanel: popoverPanelTheme,
|
|
85
|
+
Radio: radioTheme,
|
|
86
|
+
RadioField: radioFieldTheme,
|
|
87
|
+
RadioGroup: radioGroupTheme,
|
|
88
|
+
Spinner: spinnerTheme,
|
|
89
|
+
Table: tableTheme,
|
|
90
|
+
TableBody: tableBodyTheme,
|
|
91
|
+
TableCaption: tableCaptionTheme,
|
|
92
|
+
TableCell: tableCellTheme,
|
|
93
|
+
TableFoot: tableFootTheme,
|
|
94
|
+
TableHead: tableHeadTheme,
|
|
95
|
+
TableHeader: tableHeaderTheme,
|
|
96
|
+
TableRow: tableRowTheme,
|
|
97
|
+
Text: textTheme,
|
|
98
|
+
Textarea: textareaTheme,
|
|
99
|
+
merge: createTailwindMerge(createTailwindConfig()),
|
|
100
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type ClassName = ClassName[] | string | 0 | false | null | undefined;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {type Writable} from '@jakubmazanec/ts-utils';
|
|
2
|
+
|
|
3
|
+
import {type ComponentThemeDefinition} from './ComponentThemeDefinition.js';
|
|
4
|
+
import {type ComponentThemeDefinitionVariants} from './ComponentThemeDefinitionVariants.js';
|
|
5
|
+
import {type ComponentThemeProps} from './ComponentThemeProps.js';
|
|
6
|
+
|
|
7
|
+
// extracts props for component that uses created useTheme hook
|
|
8
|
+
export type ComponentProps<U extends {themeDefinition: ComponentThemeDefinition | undefined}> =
|
|
9
|
+
U['themeDefinition'] extends ComponentThemeDefinition ?
|
|
10
|
+
U['themeDefinition']['variants'] extends ComponentThemeDefinitionVariants ?
|
|
11
|
+
Partial<Writable<ComponentThemeProps<U['themeDefinition']>>>
|
|
12
|
+
: NonNullable<unknown>
|
|
13
|
+
: NonNullable<unknown>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import {type ClassName} from './ClassName.js';
|
|
2
|
+
import {type ComponentThemeCompoundVariants} from './ComponentThemeCompoundVariants.js';
|
|
3
|
+
import {type ComponentThemeDefinition} from './ComponentThemeDefinition.js';
|
|
4
|
+
import {type ComponentThemeDefinitionElements} from './ComponentThemeDefinitionElements.js';
|
|
5
|
+
import {type ComponentThemeDefinitionVariants} from './ComponentThemeDefinitionVariants.js';
|
|
6
|
+
import {type ComponentThemeVariants} from './ComponentThemeVariants.js';
|
|
7
|
+
import {type ComponentWithTheme} from './ComponentWithTheme.js';
|
|
8
|
+
|
|
9
|
+
export type ComponentThemeOptions = {
|
|
10
|
+
outputComponentName: boolean;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
type ComponentThemeFromDefinition<D extends ComponentThemeDefinition | undefined> =
|
|
14
|
+
D extends ComponentThemeDefinition ?
|
|
15
|
+
D['elements'] extends ComponentThemeDefinitionElements ?
|
|
16
|
+
D['variants'] extends ComponentThemeDefinitionVariants ?
|
|
17
|
+
{
|
|
18
|
+
classNames?: {
|
|
19
|
+
[K in D['elements'][number]]: ClassName;
|
|
20
|
+
};
|
|
21
|
+
variants: ComponentThemeVariants<D['variants'], D['elements']>;
|
|
22
|
+
compoundVariants?: ComponentThemeCompoundVariants<D['variants'], D['elements']>;
|
|
23
|
+
}
|
|
24
|
+
: {
|
|
25
|
+
classNames: {
|
|
26
|
+
[K in D['elements'][number]]: ClassName;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
: D['variants'] extends ComponentThemeDefinitionVariants ?
|
|
30
|
+
{
|
|
31
|
+
className?: ClassName;
|
|
32
|
+
variants: ComponentThemeVariants<D['variants'], undefined>;
|
|
33
|
+
compoundVariants?: ComponentThemeCompoundVariants<D['variants'], undefined>;
|
|
34
|
+
}
|
|
35
|
+
: {className: ClassName}
|
|
36
|
+
: {
|
|
37
|
+
className: ClassName;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export type ComponentTheme<
|
|
41
|
+
D extends ComponentThemeDefinition | ComponentWithTheme | undefined,
|
|
42
|
+
O extends ComponentThemeOptions = {outputComponentName: false},
|
|
43
|
+
> =
|
|
44
|
+
O['outputComponentName'] extends true ?
|
|
45
|
+
D extends ComponentWithTheme ?
|
|
46
|
+
{[K in D['componentThemeName']]: ComponentThemeFromDefinition<D['themeDefinition']>}
|
|
47
|
+
: never
|
|
48
|
+
: D extends ComponentThemeDefinition ? ComponentThemeFromDefinition<D>
|
|
49
|
+
: D extends ComponentWithTheme ? ComponentThemeFromDefinition<D['themeDefinition']>
|
|
50
|
+
: ComponentThemeFromDefinition<undefined>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {type ClassName} from './ClassName.js';
|
|
2
|
+
import {type ComponentThemeDefinitionElements} from './ComponentThemeDefinitionElements.js';
|
|
3
|
+
import {type ComponentThemeDefinitionVariants} from './ComponentThemeDefinitionVariants.js';
|
|
4
|
+
|
|
5
|
+
export type ComponentThemeCompoundVariants<
|
|
6
|
+
V extends ComponentThemeDefinitionVariants,
|
|
7
|
+
E extends ComponentThemeDefinitionElements | undefined,
|
|
8
|
+
> = Array<
|
|
9
|
+
(E extends ComponentThemeDefinitionElements ?
|
|
10
|
+
{
|
|
11
|
+
classNames: {
|
|
12
|
+
[K in E[number]]: ClassName;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
: {
|
|
16
|
+
className: ClassName;
|
|
17
|
+
}) & {
|
|
18
|
+
[K in keyof V]?: Array<V[K][number]> | V[K][number];
|
|
19
|
+
}
|
|
20
|
+
>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import {type ComponentThemeDefinitionElements} from './ComponentThemeDefinitionElements.js';
|
|
2
|
+
import {type ComponentThemeDefinitionVariants} from './ComponentThemeDefinitionVariants.js';
|
|
3
|
+
|
|
4
|
+
export type ComponentThemeDefinition = {
|
|
5
|
+
variants?: ComponentThemeDefinitionVariants;
|
|
6
|
+
elements?: ComponentThemeDefinitionElements;
|
|
7
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type ComponentThemeDefinitionElements = string[];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import {type ComponentThemeDefinition} from './ComponentThemeDefinition.js';
|
|
2
|
+
import {type ComponentThemeDefinitionVariants} from './ComponentThemeDefinitionVariants.js';
|
|
3
|
+
|
|
4
|
+
export type ComponentThemeProps<D extends ComponentThemeDefinition | undefined> =
|
|
5
|
+
D extends ComponentThemeDefinition ?
|
|
6
|
+
D['variants'] extends ComponentThemeDefinitionVariants ?
|
|
7
|
+
{
|
|
8
|
+
[J in keyof D['variants']]: D['variants'][J][number];
|
|
9
|
+
}
|
|
10
|
+
: NonNullable<unknown>
|
|
11
|
+
: NonNullable<unknown>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import {type ClassName} from './ClassName.js';
|
|
2
|
+
import {type ComponentThemeDefinitionElements} from './ComponentThemeDefinitionElements.js';
|
|
3
|
+
import {type ComponentThemeDefinitionVariants} from './ComponentThemeDefinitionVariants.js';
|
|
4
|
+
|
|
5
|
+
export type ComponentThemeVariants<
|
|
6
|
+
V extends ComponentThemeDefinitionVariants,
|
|
7
|
+
E extends ComponentThemeDefinitionElements | undefined,
|
|
8
|
+
> = {
|
|
9
|
+
[J in keyof V]: V[J] extends string[] ?
|
|
10
|
+
{
|
|
11
|
+
[K in V[J][number]]: E extends ComponentThemeDefinitionElements ?
|
|
12
|
+
{
|
|
13
|
+
[L in E[number]]: ClassName;
|
|
14
|
+
}
|
|
15
|
+
: ClassName;
|
|
16
|
+
}
|
|
17
|
+
: {
|
|
18
|
+
[K in 'false' | 'true']: E extends ComponentThemeDefinitionElements ?
|
|
19
|
+
{
|
|
20
|
+
[L in E[number]]: ClassName;
|
|
21
|
+
}
|
|
22
|
+
: ClassName;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import {type ComponentThemeDefinition} from './ComponentThemeDefinition.js';
|
|
2
|
+
import {type ComponentThemeDefinitionElements} from './ComponentThemeDefinitionElements.js';
|
|
3
|
+
import {type ComponentThemeDefinitionVariants} from './ComponentThemeDefinitionVariants.js';
|
|
4
|
+
import {type ComponentThemeProps} from './ComponentThemeProps.js';
|
|
5
|
+
import {type UseComponentThemeReturn} from './UseComponentThemeReturn.js';
|
|
6
|
+
|
|
7
|
+
export type UseComponentTheme<N extends string, D extends ComponentThemeDefinition | undefined> =
|
|
8
|
+
D extends ComponentThemeDefinition ?
|
|
9
|
+
D['variants'] extends ComponentThemeDefinitionVariants ?
|
|
10
|
+
D['elements'] extends ComponentThemeDefinitionElements ?
|
|
11
|
+
((themeProps: ComponentThemeProps<D>) => UseComponentThemeReturn<D>) & {
|
|
12
|
+
componentThemeName: N;
|
|
13
|
+
themeDefinition: D;
|
|
14
|
+
}
|
|
15
|
+
: ((themeProps: ComponentThemeProps<D>) => UseComponentThemeReturn<D>) & {
|
|
16
|
+
componentThemeName: N;
|
|
17
|
+
themeDefinition: D;
|
|
18
|
+
}
|
|
19
|
+
: D['elements'] extends ComponentThemeDefinitionElements ?
|
|
20
|
+
(() => UseComponentThemeReturn<D>) & {componentThemeName: N; themeDefinition: D}
|
|
21
|
+
: (() => UseComponentThemeReturn<D>) & {componentThemeName: N; themeDefinition: D}
|
|
22
|
+
: (() => UseComponentThemeReturn<D>) & {componentThemeName: N; themeDefinition: D};
|