@kosmeo-ui/react 0.2.0 → 1.0.0
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 +3 -1
- package/dist/components/buttons/button/styles.css +43 -43
- package/dist/components/buttons/rowActions/index.d.ts.map +1 -1
- package/dist/components/buttons/rowActions/index.js +2 -1
- package/dist/components/buttons/rowActions/index.js.map +1 -1
- package/dist/components/data-display/addressBlock/styles.css +2 -2
- package/dist/components/data-display/colorSwatch/index.d.ts +1 -1
- package/dist/components/data-display/colorSwatch/index.d.ts.map +1 -1
- package/dist/components/data-display/colorSwatch/index.js +1 -1
- package/dist/components/data-display/colorSwatch/index.js.map +1 -1
- package/dist/components/data-display/colorSwatch/styles.css +1 -1
- package/dist/components/data-display/dataTable/index.d.ts.map +1 -1
- package/dist/components/data-display/dataTable/index.js +7 -3
- package/dist/components/data-display/dataTable/index.js.map +1 -1
- package/dist/components/data-display/dataTable/styles.css +3 -2
- package/dist/components/data-display/dataTable/utils/parseDataKey.d.ts +8 -1
- package/dist/components/data-display/dataTable/utils/parseDataKey.d.ts.map +1 -1
- package/dist/components/data-display/dataTable/utils/parseDataKey.js +13 -41
- package/dist/components/data-display/dataTable/utils/parseDataKey.js.map +1 -1
- package/dist/components/data-display/imagePreview/styles.css +2 -2
- package/dist/components/data-display/infiniteScroll/filters/index.d.ts +4 -0
- package/dist/components/data-display/infiniteScroll/filters/index.d.ts.map +1 -1
- package/dist/components/data-display/infiniteScroll/filters/index.js +12 -2
- package/dist/components/data-display/infiniteScroll/filters/index.js.map +1 -1
- package/dist/components/data-display/infiniteScroll/filters/listFilter.d.ts.map +1 -1
- package/dist/components/data-display/infiniteScroll/filters/listFilter.js +1 -1
- package/dist/components/data-display/infiniteScroll/filters/listFilter.js.map +1 -1
- package/dist/components/data-display/infiniteScroll/filters/rangeFilter.d.ts +6 -0
- package/dist/components/data-display/infiniteScroll/filters/rangeFilter.d.ts.map +1 -1
- package/dist/components/data-display/infiniteScroll/filters/rangeFilter.js +55 -46
- package/dist/components/data-display/infiniteScroll/filters/rangeFilter.js.map +1 -1
- package/dist/components/data-display/infiniteScroll/filters/selectFilter.d.ts.map +1 -1
- package/dist/components/data-display/infiniteScroll/filters/selectFilter.js +3 -5
- package/dist/components/data-display/infiniteScroll/filters/selectFilter.js.map +1 -1
- package/dist/components/data-display/infiniteScroll/filters/styles.css +30 -1
- package/dist/components/data-display/infiniteScroll/header/limit.d.ts.map +1 -1
- package/dist/components/data-display/infiniteScroll/header/limit.js +1 -1
- package/dist/components/data-display/infiniteScroll/header/limit.js.map +1 -1
- package/dist/components/data-display/infiniteScroll/header/sortBy.d.ts.map +1 -1
- package/dist/components/data-display/infiniteScroll/header/sortBy.js +1 -1
- package/dist/components/data-display/infiniteScroll/header/sortBy.js.map +1 -1
- package/dist/components/data-display/infiniteScroll/header/sortDirection.d.ts.map +1 -1
- package/dist/components/data-display/infiniteScroll/header/sortDirection.js +1 -1
- package/dist/components/data-display/infiniteScroll/header/sortDirection.js.map +1 -1
- package/dist/components/data-display/infiniteScroll/index.d.ts +8 -0
- package/dist/components/data-display/infiniteScroll/index.d.ts.map +1 -1
- package/dist/components/data-display/infiniteScroll/index.js +41 -23
- package/dist/components/data-display/infiniteScroll/index.js.map +1 -1
- package/dist/components/data-display/infiniteScroll/styles.css +2 -2
- package/dist/components/data-display/infiniteScroll/tags/index.d.ts.map +1 -1
- package/dist/components/data-display/infiniteScroll/tags/index.js +6 -5
- package/dist/components/data-display/infiniteScroll/tags/index.js.map +1 -1
- package/dist/components/data-display/infiniteScroll/tags/listFilterTag.d.ts.map +1 -1
- package/dist/components/data-display/infiniteScroll/tags/listFilterTag.js +6 -6
- package/dist/components/data-display/infiniteScroll/tags/listFilterTag.js.map +1 -1
- package/dist/components/data-display/infiniteScroll/tags/rangeFilterTag.d.ts.map +1 -1
- package/dist/components/data-display/infiniteScroll/tags/rangeFilterTag.js +3 -5
- package/dist/components/data-display/infiniteScroll/tags/rangeFilterTag.js.map +1 -1
- package/dist/components/data-display/infiniteScroll/utils/generateQueryString.d.ts +6 -0
- package/dist/components/data-display/infiniteScroll/utils/generateQueryString.d.ts.map +1 -1
- package/dist/components/data-display/infiniteScroll/utils/generateQueryString.js +24 -12
- package/dist/components/data-display/infiniteScroll/utils/generateQueryString.js.map +1 -1
- package/dist/components/data-display/infiniteScroll/utils/hasPendingChanges.d.ts +11 -1
- package/dist/components/data-display/infiniteScroll/utils/hasPendingChanges.d.ts.map +1 -1
- package/dist/components/data-display/infiniteScroll/utils/hasPendingChanges.js +37 -18
- package/dist/components/data-display/infiniteScroll/utils/hasPendingChanges.js.map +1 -1
- package/dist/components/data-display/listCard/styles.css +3 -3
- package/dist/components/data-display/listRow/styles.css +2 -2
- package/dist/components/data-display/recoveryCodeGrid/styles.css +3 -3
- package/dist/components/data-display/secretDisplay/styles.css +4 -4
- package/dist/components/data-display/statCard/styles.css +12 -12
- package/dist/components/data-display/summaryRow/styles.css +4 -4
- package/dist/components/data-display/table/index.d.ts.map +1 -1
- package/dist/components/data-display/table/index.js +2 -2
- package/dist/components/data-display/table/index.js.map +1 -1
- package/dist/components/data-display/table/styles.css +10 -10
- package/dist/components/data-display/tableFilters/index.d.ts +30 -0
- package/dist/components/data-display/tableFilters/index.d.ts.map +1 -0
- package/dist/components/data-display/tableFilters/index.js +67 -0
- package/dist/components/data-display/tableFilters/index.js.map +1 -0
- package/dist/components/data-display/tagCard/index.d.ts.map +1 -1
- package/dist/components/data-display/tagCard/index.js +1 -1
- package/dist/components/data-display/tagCard/index.js.map +1 -1
- package/dist/components/data-display/tagCard/styles.css +1 -1
- package/dist/components/feedback/alert/styles.css +15 -15
- package/dist/components/feedback/badge/index.d.ts.map +1 -1
- package/dist/components/feedback/badge/index.js +14 -8
- package/dist/components/feedback/badge/index.js.map +1 -1
- package/dist/components/feedback/badge/styles.css +44 -46
- package/dist/components/feedback/emptyState/styles.css +2 -2
- package/dist/components/feedback/loadingOverlay/styles.css +1 -1
- package/dist/components/feedback/progressBar/styles.css +11 -11
- package/dist/components/feedback/spinner/styles.css +14 -11
- package/dist/components/feedback/tooltip/styles.css +9 -7
- package/dist/components/forms/detailField/styles.css +1 -1
- package/dist/components/forms/fieldShell/index.d.ts +3 -1
- package/dist/components/forms/fieldShell/index.d.ts.map +1 -1
- package/dist/components/forms/fieldShell/index.js +1 -1
- package/dist/components/forms/fieldShell/index.js.map +1 -1
- package/dist/components/forms/fieldShell/styles.css +5 -5
- package/dist/components/forms/form/styles.css +6 -6
- package/dist/components/forms/formActions/styles.css +4 -4
- package/dist/components/forms/formGrid/styles.css +32 -0
- package/dist/components/forms/infoRow/styles.css +2 -2
- package/dist/components/forms/optionsGroup/index.d.ts +3 -1
- package/dist/components/forms/optionsGroup/index.d.ts.map +1 -1
- package/dist/components/forms/optionsGroup/index.js +5 -1
- package/dist/components/forms/optionsGroup/index.js.map +1 -1
- package/dist/components/forms/optionsGroup/styles.css +1 -1
- package/dist/components/forms/requiredAsterisk/index.d.ts.map +1 -1
- package/dist/components/forms/requiredAsterisk/index.js +3 -2
- package/dist/components/forms/requiredAsterisk/index.js.map +1 -1
- package/dist/components/forms/requiredAsterisk/styles.css +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/inputs/checkbox/index.d.ts.map +1 -1
- package/dist/components/inputs/checkbox/index.js +3 -1
- package/dist/components/inputs/checkbox/index.js.map +1 -1
- package/dist/components/inputs/checkbox/styles.css +4 -4
- package/dist/components/inputs/colorPicker/index.d.ts.map +1 -1
- package/dist/components/inputs/colorPicker/index.js +3 -1
- package/dist/components/inputs/colorPicker/index.js.map +1 -1
- package/dist/components/inputs/colorPicker/styles.css +3 -3
- package/dist/components/inputs/dateInput/index.d.ts +3 -3
- package/dist/components/inputs/dateInput/index.d.ts.map +1 -1
- package/dist/components/inputs/dateInput/index.js +2 -2
- package/dist/components/inputs/dateInput/index.js.map +1 -1
- package/dist/components/inputs/dateInput/styles.css +5 -5
- package/dist/components/inputs/dateInput/utils.d.ts +0 -1
- package/dist/components/inputs/dateInput/utils.d.ts.map +1 -1
- package/dist/components/inputs/dateInput/utils.js +13 -8
- package/dist/components/inputs/dateInput/utils.js.map +1 -1
- package/dist/components/inputs/dropdown/index.js +1 -1
- package/dist/components/inputs/dropdown/index.js.map +1 -1
- package/dist/components/inputs/dropdown/styles.css +2 -2
- package/dist/components/inputs/dropdownArrowButton/styles.css +7 -5
- package/dist/components/inputs/fileDropZone/index.d.ts.map +1 -1
- package/dist/components/inputs/fileDropZone/index.js +3 -2
- package/dist/components/inputs/fileDropZone/index.js.map +1 -1
- package/dist/components/inputs/fileDropZone/styles.css +12 -12
- package/dist/components/inputs/fileUpload/index.d.ts.map +1 -1
- package/dist/components/inputs/fileUpload/index.js +11 -6
- package/dist/components/inputs/fileUpload/index.js.map +1 -1
- package/dist/components/inputs/fileUpload/styles.css +9 -9
- package/dist/components/inputs/input/index.d.ts +12 -0
- package/dist/components/inputs/input/index.d.ts.map +1 -1
- package/dist/components/inputs/input/index.js +4 -3
- package/dist/components/inputs/input/index.js.map +1 -1
- package/dist/components/inputs/input/styles.css +28 -28
- package/dist/components/inputs/languageSelect/index.d.ts.map +1 -1
- package/dist/components/inputs/languageSelect/index.js +15 -4
- package/dist/components/inputs/languageSelect/index.js.map +1 -1
- package/dist/components/inputs/multiSelect/dropDown.d.ts +7 -0
- package/dist/components/inputs/multiSelect/dropDown.d.ts.map +1 -1
- package/dist/components/inputs/multiSelect/dropDown.js +19 -12
- package/dist/components/inputs/multiSelect/dropDown.js.map +1 -1
- package/dist/components/inputs/multiSelect/index.d.ts.map +1 -1
- package/dist/components/inputs/multiSelect/index.js +49 -13
- package/dist/components/inputs/multiSelect/index.js.map +1 -1
- package/dist/components/inputs/multiSelect/styles.css +51 -43
- package/dist/components/inputs/multiSelect/utils.d.ts +7 -0
- package/dist/components/inputs/multiSelect/utils.d.ts.map +1 -0
- package/dist/components/inputs/multiSelect/utils.js +18 -0
- package/dist/components/inputs/multiSelect/utils.js.map +1 -0
- package/dist/components/inputs/phoneInput/index.d.ts.map +1 -1
- package/dist/components/inputs/phoneInput/index.js +11 -3
- package/dist/components/inputs/phoneInput/index.js.map +1 -1
- package/dist/components/inputs/phoneInput/styles.css +13 -13
- package/dist/components/inputs/radioGroup/index.d.ts.map +1 -1
- package/dist/components/inputs/radioGroup/index.js +1 -1
- package/dist/components/inputs/radioGroup/index.js.map +1 -1
- package/dist/components/inputs/richTextEditor/index.d.ts.map +1 -1
- package/dist/components/inputs/richTextEditor/index.js +21 -22
- package/dist/components/inputs/richTextEditor/index.js.map +1 -1
- package/dist/components/inputs/richTextEditor/styles.css +24 -24
- package/dist/components/inputs/searchList/index.d.ts +4 -1
- package/dist/components/inputs/searchList/index.d.ts.map +1 -1
- package/dist/components/inputs/searchList/index.js +46 -31
- package/dist/components/inputs/searchList/index.js.map +1 -1
- package/dist/components/inputs/searchList/styles.css +22 -22
- package/dist/components/inputs/searchSelect/index.d.ts.map +1 -1
- package/dist/components/inputs/searchSelect/index.js +8 -2
- package/dist/components/inputs/searchSelect/index.js.map +1 -1
- package/dist/components/inputs/select/index.js +3 -2
- package/dist/components/inputs/select/index.js.map +1 -1
- package/dist/components/inputs/select/styles.css +93 -15
- package/dist/components/inputs/switch/index.d.ts.map +1 -1
- package/dist/components/inputs/switch/index.js +3 -1
- package/dist/components/inputs/switch/index.js.map +1 -1
- package/dist/components/inputs/switch/styles.css +5 -5
- package/dist/components/inputs/textArea/index.d.ts.map +1 -1
- package/dist/components/inputs/textArea/index.js +3 -2
- package/dist/components/inputs/textArea/index.js.map +1 -1
- package/dist/components/inputs/textArea/styles.css +11 -11
- package/dist/components/inputs/typeahead/index.d.ts.map +1 -1
- package/dist/components/inputs/typeahead/index.js +21 -6
- package/dist/components/inputs/typeahead/index.js.map +1 -1
- package/dist/components/inputs/typeahead/styles.css +13 -13
- package/dist/components/layout/authPage/styles.css +6 -6
- package/dist/components/layout/borderedSection/styles.css +3 -3
- package/dist/components/layout/card/styles.css +31 -31
- package/dist/components/layout/col/styles.css +1 -1
- package/dist/components/layout/page/styles.css +25 -5
- package/dist/components/layout/sectionHeader/styles.css +3 -3
- package/dist/components/navigation/breadcrumbs/styles.css +7 -7
- package/dist/components/navigation/pagination/styles.css +15 -15
- package/dist/components/navigation/sidebar/styles.css +6 -6
- package/dist/components/navigation/stepper/styles.css +14 -14
- package/dist/components/navigation/tabButton/styles.css +59 -59
- package/dist/components/navigation/tabs/styles.css +5 -5
- package/dist/components/overlays/modal/styles.css +19 -19
- package/dist/hooks/useInfinite.d.ts +3 -1
- package/dist/hooks/useInfinite.d.ts.map +1 -1
- package/dist/hooks/useInfinite.js +4 -2
- package/dist/hooks/useInfinite.js.map +1 -1
- package/dist/hooks/useInfiniteArchivableCursor.d.ts +1 -1
- package/dist/hooks/useInfiniteArchivableCursor.d.ts.map +1 -1
- package/dist/hooks/useInfiniteArchivableCursor.js +11 -4
- package/dist/hooks/useInfiniteArchivableCursor.js.map +1 -1
- package/dist/hooks/useInfiniteCursor.d.ts +1 -1
- package/dist/hooks/useInfiniteCursor.d.ts.map +1 -1
- package/dist/hooks/useInfiniteCursor.js +11 -4
- package/dist/hooks/useInfiniteCursor.js.map +1 -1
- package/dist/styles.css +142 -127
- package/package.json +15 -4
- package/src/components/buttons/button/styles.css +43 -43
- package/src/components/buttons/rowActions/index.tsx +6 -1
- package/src/components/data-display/addressBlock/styles.css +2 -2
- package/src/components/data-display/colorSwatch/index.tsx +2 -2
- package/src/components/data-display/colorSwatch/styles.css +1 -1
- package/src/components/data-display/dataTable/index.tsx +6 -3
- package/src/components/data-display/dataTable/styles.css +3 -2
- package/src/components/data-display/dataTable/utils/parseDataKey.ts +18 -36
- package/src/components/data-display/imagePreview/styles.css +2 -2
- package/src/components/data-display/infiniteScroll/filters/index.tsx +18 -1
- package/src/components/data-display/infiniteScroll/filters/listFilter.tsx +1 -0
- package/src/components/data-display/infiniteScroll/filters/rangeFilter.tsx +77 -33
- package/src/components/data-display/infiniteScroll/filters/selectFilter.tsx +11 -17
- package/src/components/data-display/infiniteScroll/filters/styles.css +30 -1
- package/src/components/data-display/infiniteScroll/header/limit.tsx +1 -0
- package/src/components/data-display/infiniteScroll/header/sortBy.tsx +1 -0
- package/src/components/data-display/infiniteScroll/header/sortDirection.tsx +1 -0
- package/src/components/data-display/infiniteScroll/index.tsx +75 -29
- package/src/components/data-display/infiniteScroll/styles.css +2 -2
- package/src/components/data-display/infiniteScroll/tags/index.tsx +6 -5
- package/src/components/data-display/infiniteScroll/tags/listFilterTag.tsx +20 -13
- package/src/components/data-display/infiniteScroll/tags/rangeFilterTag.tsx +4 -3
- package/src/components/data-display/infiniteScroll/utils/generateQueryString.ts +28 -13
- package/src/components/data-display/infiniteScroll/utils/hasPendingChanges.ts +48 -16
- package/src/components/data-display/listCard/styles.css +3 -3
- package/src/components/data-display/listRow/styles.css +2 -2
- package/src/components/data-display/recoveryCodeGrid/styles.css +3 -3
- package/src/components/data-display/secretDisplay/styles.css +4 -4
- package/src/components/data-display/statCard/styles.css +12 -12
- package/src/components/data-display/summaryRow/styles.css +4 -4
- package/src/components/data-display/table/index.tsx +2 -2
- package/src/components/data-display/table/styles.css +10 -10
- package/src/components/data-display/tableFilters/index.tsx +147 -0
- package/src/components/data-display/tagCard/index.tsx +3 -2
- package/src/components/data-display/tagCard/styles.css +1 -1
- package/src/components/feedback/alert/styles.css +15 -15
- package/src/components/feedback/badge/index.tsx +36 -16
- package/src/components/feedback/badge/styles.css +44 -46
- package/src/components/feedback/emptyState/styles.css +2 -2
- package/src/components/feedback/loadingOverlay/styles.css +1 -1
- package/src/components/feedback/progressBar/styles.css +11 -11
- package/src/components/feedback/spinner/styles.css +14 -11
- package/src/components/feedback/tooltip/styles.css +9 -7
- package/src/components/forms/detailField/styles.css +1 -1
- package/src/components/forms/fieldShell/index.tsx +4 -1
- package/src/components/forms/fieldShell/styles.css +5 -5
- package/src/components/forms/form/styles.css +6 -6
- package/src/components/forms/formActions/styles.css +4 -4
- package/src/components/forms/formGrid/styles.css +32 -0
- package/src/components/forms/infoRow/styles.css +2 -2
- package/src/components/forms/optionsGroup/index.tsx +31 -12
- package/src/components/forms/optionsGroup/styles.css +1 -1
- package/src/components/forms/requiredAsterisk/index.tsx +5 -1
- package/src/components/forms/requiredAsterisk/styles.css +1 -1
- package/src/components/index.ts +2 -0
- package/src/components/inputs/checkbox/index.tsx +3 -2
- package/src/components/inputs/checkbox/styles.css +4 -4
- package/src/components/inputs/colorPicker/index.tsx +5 -2
- package/src/components/inputs/colorPicker/styles.css +3 -3
- package/src/components/inputs/dateInput/index.tsx +4 -5
- package/src/components/inputs/dateInput/styles.css +5 -5
- package/src/components/inputs/dateInput/utils.ts +12 -8
- package/src/components/inputs/dropdown/index.tsx +1 -1
- package/src/components/inputs/dropdown/styles.css +2 -2
- package/src/components/inputs/dropdownArrowButton/styles.css +7 -5
- package/src/components/inputs/fileDropZone/index.tsx +4 -3
- package/src/components/inputs/fileDropZone/styles.css +12 -12
- package/src/components/inputs/fileUpload/index.tsx +33 -23
- package/src/components/inputs/fileUpload/styles.css +9 -9
- package/src/components/inputs/input/index.tsx +21 -3
- package/src/components/inputs/input/styles.css +28 -28
- package/src/components/inputs/languageSelect/index.tsx +19 -4
- package/src/components/inputs/multiSelect/dropDown.tsx +83 -35
- package/src/components/inputs/multiSelect/index.tsx +87 -30
- package/src/components/inputs/multiSelect/styles.css +51 -43
- package/src/components/inputs/multiSelect/utils.ts +18 -0
- package/src/components/inputs/phoneInput/index.tsx +10 -2
- package/src/components/inputs/phoneInput/styles.css +13 -13
- package/src/components/inputs/radioGroup/index.tsx +2 -1
- package/src/components/inputs/richTextEditor/index.tsx +42 -44
- package/src/components/inputs/richTextEditor/styles.css +24 -24
- package/src/components/inputs/searchList/index.tsx +121 -109
- package/src/components/inputs/searchList/styles.css +22 -22
- package/src/components/inputs/searchSelect/index.tsx +8 -2
- package/src/components/inputs/select/index.tsx +3 -3
- package/src/components/inputs/select/styles.css +93 -15
- package/src/components/inputs/switch/index.tsx +3 -2
- package/src/components/inputs/switch/styles.css +5 -5
- package/src/components/inputs/textArea/index.tsx +3 -3
- package/src/components/inputs/textArea/styles.css +11 -11
- package/src/components/inputs/typeahead/index.tsx +84 -54
- package/src/components/inputs/typeahead/styles.css +13 -13
- package/src/components/layout/authPage/styles.css +6 -6
- package/src/components/layout/borderedSection/styles.css +3 -3
- package/src/components/layout/card/styles.css +31 -31
- package/src/components/layout/col/styles.css +1 -1
- package/src/components/layout/page/styles.css +25 -5
- package/src/components/layout/sectionHeader/styles.css +3 -3
- package/src/components/navigation/breadcrumbs/styles.css +7 -7
- package/src/components/navigation/pagination/styles.css +15 -15
- package/src/components/navigation/sidebar/styles.css +6 -6
- package/src/components/navigation/stepper/styles.css +14 -14
- package/src/components/navigation/tabButton/styles.css +59 -59
- package/src/components/navigation/tabs/styles.css +5 -5
- package/src/components/overlays/modal/styles.css +19 -19
- package/src/hooks/useInfinite.ts +7 -3
- package/src/hooks/useInfiniteArchivableCursor.ts +11 -4
- package/src/hooks/useInfiniteCursor.ts +11 -4
- package/src/styles.css +142 -127
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
padding: 0.5rem 0.75rem;
|
|
6
6
|
font-size: 0.85rem;
|
|
7
7
|
font-weight: 600;
|
|
8
|
-
background-color: var(--background-color-dark);
|
|
9
|
-
border: 1px solid var(--border-color);
|
|
8
|
+
background-color: var(--k-background-color-dark);
|
|
9
|
+
border: 1px solid var(--k-border-color);
|
|
10
10
|
border-radius: 4px;
|
|
11
11
|
}
|
|
12
12
|
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
.k-summary-row-label {
|
|
20
|
-
color: var(--text-color-secondary);
|
|
20
|
+
color: var(--k-text-color-secondary);
|
|
21
21
|
font-weight: 500;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
.k-summary-row-value {
|
|
25
|
-
color: var(--text-color);
|
|
25
|
+
color: var(--k-text-color);
|
|
26
26
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
+
import parseDataKey, { cellText } from "../dataTable/utils/parseDataKey.js";
|
|
3
4
|
import type { TableColumn, TableRow } from "../dataTable/types.js";
|
|
4
|
-
import parseDataKey from "../dataTable/utils/parseDataKey.js";
|
|
5
5
|
import { ReactNode } from "react";
|
|
6
6
|
import "./styles.css";
|
|
7
7
|
|
|
@@ -110,7 +110,7 @@ const Table = <TData,>({
|
|
|
110
110
|
const content = c.cellElement
|
|
111
111
|
? c.cellElement(row, i)
|
|
112
112
|
: c.dataKey
|
|
113
|
-
? (parseDataKey(c.dataKey, row)
|
|
113
|
+
? cellText(parseDataKey(c.dataKey, row))
|
|
114
114
|
: null;
|
|
115
115
|
return (
|
|
116
116
|
<td
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
width: 100%;
|
|
3
3
|
border-collapse: collapse;
|
|
4
4
|
text-align: left;
|
|
5
|
-
color: var(--text-color);
|
|
6
|
-
background-color: var(--background-color-light);
|
|
5
|
+
color: var(--k-text-color);
|
|
6
|
+
background-color: var(--k-background-color-light);
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
.k-table th,
|
|
@@ -27,25 +27,25 @@
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
.k-table-striped tbody tr:nth-of-type(odd) {
|
|
30
|
-
background-color: var(--background-color-dark);
|
|
30
|
+
background-color: var(--k-background-color-dark);
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
.k-table-hover tbody tr:hover {
|
|
34
|
-
background-color: var(--background-color-hover);
|
|
34
|
+
background-color: var(--k-background-color-hover);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
.k-table-bordered {
|
|
38
|
-
border: 1px solid var(--border-color);
|
|
38
|
+
border: 1px solid var(--k-border-color);
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
.k-table-bordered th,
|
|
42
42
|
.k-table-bordered td {
|
|
43
|
-
border-top: 1px solid var(--border-color);
|
|
43
|
+
border-top: 1px solid var(--k-border-color);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
.k-table-bordered th:not(:first-child),
|
|
47
47
|
.k-table-bordered td:not(:first-child) {
|
|
48
|
-
border-left: 1px solid var(--border-color);
|
|
48
|
+
border-left: 1px solid var(--k-border-color);
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
/* ===== Clickable rows ===== */
|
|
@@ -55,18 +55,18 @@
|
|
|
55
55
|
|
|
56
56
|
/* ===== Row selection (caller marks rows with data-selected="true") ===== */
|
|
57
57
|
.k-table tbody tr[data-selected="true"] {
|
|
58
|
-
background-color: var(--primary-color-background-light);
|
|
58
|
+
background-color: var(--k-primary-color-background-light);
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
/* ===== Scrollable wrapper with sticky header ===== */
|
|
62
62
|
.k-table-scroll-container {
|
|
63
63
|
overflow-y: auto;
|
|
64
|
-
border: 1px solid var(--border-color);
|
|
64
|
+
border: 1px solid var(--k-border-color);
|
|
65
65
|
border-radius: 4px;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
.k-table-scroll-container .k-table thead tr {
|
|
69
69
|
position: sticky;
|
|
70
70
|
top: 0;
|
|
71
|
-
background: var(--background-color-light);
|
|
71
|
+
background: var(--k-background-color-light);
|
|
72
72
|
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import * as pendingChangesUtil from "../infiniteScroll/utils/hasPendingChanges.js";
|
|
4
|
+
import { filterParams } from "../infiniteScroll/utils/generateQueryString.js";
|
|
5
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
6
|
+
import Filters from "../infiniteScroll/filters/index.js";
|
|
7
|
+
import Button from "../../buttons/button/index.js";
|
|
8
|
+
import Tags from "../infiniteScroll/tags/index.js";
|
|
9
|
+
import Col from "../../layout/col/index.js";
|
|
10
|
+
import {
|
|
11
|
+
InfiniteScrollMenuFilter,
|
|
12
|
+
InfiniteScrollMenuGeneratedFilter,
|
|
13
|
+
} from "../infiniteScroll/types.js";
|
|
14
|
+
|
|
15
|
+
const TYPING_DEBOUNCE_MS = 400;
|
|
16
|
+
|
|
17
|
+
export interface TableFiltersProps {
|
|
18
|
+
/**
|
|
19
|
+
* The filters to offer, as in InfiniteScroll's `menu.filters`. They're
|
|
20
|
+
* compared by contents, so an inline array is fine; changing them resets
|
|
21
|
+
* every filter to the new definitions.
|
|
22
|
+
*/
|
|
23
|
+
filters: InfiniteScrollMenuFilter[];
|
|
24
|
+
/**
|
|
25
|
+
* Called with the applied filters as query params (`filter[status]`,
|
|
26
|
+
* `filter[mrr_gte]`, …), ready to spread into `usePaginated`'s `params`.
|
|
27
|
+
* It fires once on mount, with `{}` unless a filter starts with a value.
|
|
28
|
+
*/
|
|
29
|
+
onChange: (params: Record<string, string>) => void;
|
|
30
|
+
/**
|
|
31
|
+
* `"immediate"` (default) applies each change as it's made: searches wait
|
|
32
|
+
* for a pause in typing, and a range (two bounds in one menu) applies from
|
|
33
|
+
* the menu's own Apply button. `"manual"` collects changes until Apply is
|
|
34
|
+
* clicked. Enter in a filter's text box applies in both.
|
|
35
|
+
*/
|
|
36
|
+
applyMode?: "immediate" | "manual";
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const generate = (filters: InfiniteScrollMenuFilter[]) =>
|
|
40
|
+
filters.map((f, i): InfiniteScrollMenuGeneratedFilter => ({
|
|
41
|
+
...f,
|
|
42
|
+
filterId: `${f.dataKey}-${i}`,
|
|
43
|
+
}));
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* InfiniteScroll's filter bar on its own, for tables that page or load some
|
|
47
|
+
* other way: search, select, range and list filters with tags and Reset. It
|
|
48
|
+
* reports the applied filters as query params.
|
|
49
|
+
*/
|
|
50
|
+
const TableFilters = ({
|
|
51
|
+
filters: definitions,
|
|
52
|
+
onChange,
|
|
53
|
+
applyMode = "immediate",
|
|
54
|
+
}: TableFiltersProps) => {
|
|
55
|
+
const [filters, setFilters] = useState(() => generate(definitions));
|
|
56
|
+
const [pendingFilters, setPendingFilters] = useState(filters);
|
|
57
|
+
|
|
58
|
+
// The definitions are plain data, as InfiniteScroll's menu: start over when
|
|
59
|
+
// their contents change, not each time they're a new array.
|
|
60
|
+
const definitionsKey = JSON.stringify(definitions);
|
|
61
|
+
const [prevDefinitionsKey, setPrevDefinitionsKey] = useState(definitionsKey);
|
|
62
|
+
if (definitionsKey !== prevDefinitionsKey) {
|
|
63
|
+
const next = generate(definitions);
|
|
64
|
+
setPrevDefinitionsKey(definitionsKey);
|
|
65
|
+
setFilters(next);
|
|
66
|
+
setPendingFilters(next);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Report only when the params actually change, not on every new array.
|
|
70
|
+
const params = useMemo(() => filterParams(filters), [filters]);
|
|
71
|
+
const paramsKey = JSON.stringify(params);
|
|
72
|
+
const onChangeRef = useRef(onChange);
|
|
73
|
+
onChangeRef.current = onChange;
|
|
74
|
+
useEffect(() => {
|
|
75
|
+
onChangeRef.current(params);
|
|
76
|
+
}, [paramsKey]);
|
|
77
|
+
|
|
78
|
+
const hasPendingChanges = useMemo(
|
|
79
|
+
() => pendingChangesUtil.hasFilterChanges(filters, pendingFilters),
|
|
80
|
+
[filters, pendingFilters]
|
|
81
|
+
);
|
|
82
|
+
const hasActiveFilters =
|
|
83
|
+
pendingChangesUtil.hasActiveFilters(pendingFilters) ||
|
|
84
|
+
pendingChangesUtil.hasActiveFilters(filters);
|
|
85
|
+
|
|
86
|
+
const handleApply = useCallback(
|
|
87
|
+
() => setFilters(pendingFilters),
|
|
88
|
+
[pendingFilters]
|
|
89
|
+
);
|
|
90
|
+
|
|
91
|
+
useEffect(() => {
|
|
92
|
+
if (applyMode !== "immediate" || !hasPendingChanges) return;
|
|
93
|
+
const delay = pendingChangesUtil.hasTypedFilterChanges(
|
|
94
|
+
filters,
|
|
95
|
+
pendingFilters
|
|
96
|
+
)
|
|
97
|
+
? TYPING_DEBOUNCE_MS
|
|
98
|
+
: 0;
|
|
99
|
+
const timer = setTimeout(handleApply, delay);
|
|
100
|
+
return () => clearTimeout(timer);
|
|
101
|
+
}, [applyMode, hasPendingChanges, handleApply, filters, pendingFilters]);
|
|
102
|
+
|
|
103
|
+
// Removing a tag applies at once; the pending copy of that filter follows.
|
|
104
|
+
const handleTagChange = useCallback(
|
|
105
|
+
(next: InfiniteScrollMenuGeneratedFilter[]) => {
|
|
106
|
+
setPendingFilters((pending) =>
|
|
107
|
+
pending.map((p, i) => (next[i] !== filters[i] ? next[i] : p))
|
|
108
|
+
);
|
|
109
|
+
setFilters(next);
|
|
110
|
+
},
|
|
111
|
+
[filters]
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
const handleReset = useCallback(() => {
|
|
115
|
+
const cleared = pendingChangesUtil.clearFilters(pendingFilters);
|
|
116
|
+
setPendingFilters(cleared);
|
|
117
|
+
setFilters(cleared);
|
|
118
|
+
}, [pendingFilters]);
|
|
119
|
+
|
|
120
|
+
return (
|
|
121
|
+
<Col size="sm">
|
|
122
|
+
<Filters
|
|
123
|
+
pendingFilters={pendingFilters}
|
|
124
|
+
handleNewPendingFilters={setPendingFilters}
|
|
125
|
+
onApply={hasPendingChanges ? handleApply : undefined}
|
|
126
|
+
rangeApplyInMenu={applyMode === "immediate"}
|
|
127
|
+
>
|
|
128
|
+
<Button
|
|
129
|
+
size="sm"
|
|
130
|
+
variant="danger"
|
|
131
|
+
disabled={!hasActiveFilters}
|
|
132
|
+
onClick={handleReset}
|
|
133
|
+
>
|
|
134
|
+
Reset
|
|
135
|
+
</Button>
|
|
136
|
+
{applyMode === "manual" && (
|
|
137
|
+
<Button size="sm" disabled={!hasPendingChanges} onClick={handleApply}>
|
|
138
|
+
Apply
|
|
139
|
+
</Button>
|
|
140
|
+
)}
|
|
141
|
+
</Filters>
|
|
142
|
+
<Tags filters={filters} handleNewFilters={handleTagChange} />
|
|
143
|
+
</Col>
|
|
144
|
+
);
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
export default TableFilters;
|
|
@@ -20,8 +20,9 @@ const TagCard = (props: TagCardProps) => {
|
|
|
20
20
|
<h3>{props.title}</h3>
|
|
21
21
|
{props.tags.length ? (
|
|
22
22
|
<ul className="k-tag-card-list">
|
|
23
|
-
{
|
|
24
|
-
|
|
23
|
+
{/* Tags can repeat and hold no state, so position is part of the key. */}
|
|
24
|
+
{props.tags.map((t, i) => (
|
|
25
|
+
<li key={`${i}-${t}`}>
|
|
25
26
|
<Badge variant={color} size="md" pill>
|
|
26
27
|
{t}
|
|
27
28
|
</Badge>
|
|
@@ -43,46 +43,46 @@
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
.k-alert-primary {
|
|
46
|
-
background-color: var(--primary-color-background);
|
|
47
|
-
color: var(--text-color-light);
|
|
46
|
+
background-color: var(--k-primary-color-background);
|
|
47
|
+
color: var(--k-text-color-light);
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
.k-alert-secondary {
|
|
51
|
-
background-color: var(--secondary-color-background);
|
|
52
|
-
color: var(--text-color-light);
|
|
51
|
+
background-color: var(--k-secondary-color-background);
|
|
52
|
+
color: var(--k-text-color-light);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
.k-alert-light {
|
|
56
|
-
background-color: var(--light-color-background);
|
|
57
|
-
color: var(--text-color);
|
|
56
|
+
background-color: var(--k-light-color-background);
|
|
57
|
+
color: var(--k-text-color);
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
.k-alert-danger {
|
|
61
|
-
background-color: var(--danger-color-background);
|
|
62
|
-
color: var(--text-color-light);
|
|
61
|
+
background-color: var(--k-danger-color-background);
|
|
62
|
+
color: var(--k-text-color-light);
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
.k-alert-warning {
|
|
66
|
-
background-color: var(--warning-color-background);
|
|
67
|
-
color: var(--text-color);
|
|
66
|
+
background-color: var(--k-warning-color-background);
|
|
67
|
+
color: var(--k-text-color);
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
.k-alert-success {
|
|
71
|
-
background-color: var(--success-color-background);
|
|
72
|
-
color: var(--text-color-light);
|
|
71
|
+
background-color: var(--k-success-color-background);
|
|
72
|
+
color: var(--k-text-color-light);
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
.k-alert-sm {
|
|
76
|
-
font-size: var(--text-size-sm);
|
|
76
|
+
font-size: var(--k-text-size-sm);
|
|
77
77
|
padding: 0.5rem 0.75rem;
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
.k-alert-md {
|
|
81
|
-
font-size: var(--text-size-md);
|
|
81
|
+
font-size: var(--k-text-size-md);
|
|
82
82
|
padding: 0.75rem 1rem;
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
.k-alert-lg {
|
|
86
|
-
font-size: var(--text-size-lg);
|
|
86
|
+
font-size: var(--k-text-size-lg);
|
|
87
87
|
padding: 1rem 1.25rem;
|
|
88
88
|
}
|
|
@@ -55,30 +55,49 @@ const Badge = ({
|
|
|
55
55
|
backgroundColor: color,
|
|
56
56
|
color:
|
|
57
57
|
getContrastTextColor(color) === "light"
|
|
58
|
-
? "var(--text-color-light)"
|
|
59
|
-
: "var(--text-color)",
|
|
58
|
+
? "var(--k-text-color-light)"
|
|
59
|
+
: "var(--k-text-color)",
|
|
60
60
|
}
|
|
61
61
|
: undefined;
|
|
62
62
|
|
|
63
|
-
const
|
|
63
|
+
const label = (
|
|
64
64
|
<>
|
|
65
65
|
{startIcon && <span className="k-badge-start-icon">{startIcon}</span>}
|
|
66
66
|
<span className="k-badge-content">{children}</span>
|
|
67
|
-
|
|
67
|
+
</>
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
const removeButton = onRemove && (
|
|
71
|
+
<button
|
|
72
|
+
type="button"
|
|
73
|
+
aria-label="Remove"
|
|
74
|
+
className="k-badge-remove"
|
|
75
|
+
onClick={(e) => {
|
|
76
|
+
e.stopPropagation();
|
|
77
|
+
onRemove();
|
|
78
|
+
}}
|
|
79
|
+
>
|
|
80
|
+
<FontAwesomeIcon icon={faXmark} />
|
|
81
|
+
</button>
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
// Clickable and removable: two sibling buttons in a span, since a button
|
|
85
|
+
// can't contain another.
|
|
86
|
+
if (onClick && onRemove) {
|
|
87
|
+
return (
|
|
88
|
+
<span className={classes} style={inlineStyle}>
|
|
68
89
|
<button
|
|
69
90
|
type="button"
|
|
70
|
-
aria-label=
|
|
71
|
-
className="k-badge-
|
|
72
|
-
onClick={
|
|
73
|
-
e.stopPropagation();
|
|
74
|
-
onRemove();
|
|
75
|
-
}}
|
|
91
|
+
aria-label={ariaLabel}
|
|
92
|
+
className="k-badge-action"
|
|
93
|
+
onClick={onClick}
|
|
76
94
|
>
|
|
77
|
-
|
|
95
|
+
{label}
|
|
78
96
|
</button>
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
97
|
+
{removeButton}
|
|
98
|
+
</span>
|
|
99
|
+
);
|
|
100
|
+
}
|
|
82
101
|
|
|
83
102
|
if (onClick) {
|
|
84
103
|
return (
|
|
@@ -89,14 +108,15 @@ const Badge = ({
|
|
|
89
108
|
style={inlineStyle}
|
|
90
109
|
onClick={onClick}
|
|
91
110
|
>
|
|
92
|
-
{
|
|
111
|
+
{label}
|
|
93
112
|
</button>
|
|
94
113
|
);
|
|
95
114
|
}
|
|
96
115
|
|
|
97
116
|
return (
|
|
98
117
|
<span className={classes} style={inlineStyle}>
|
|
99
|
-
{
|
|
118
|
+
{label}
|
|
119
|
+
{removeButton}
|
|
100
120
|
</span>
|
|
101
121
|
);
|
|
102
122
|
};
|
|
@@ -21,6 +21,18 @@ button.k-badge {
|
|
|
21
21
|
opacity: 0.85;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
.k-badge-action {
|
|
25
|
+
display: inline-flex;
|
|
26
|
+
align-items: center;
|
|
27
|
+
gap: inherit;
|
|
28
|
+
padding: 0;
|
|
29
|
+
border: none;
|
|
30
|
+
background: none;
|
|
31
|
+
color: inherit;
|
|
32
|
+
font: inherit;
|
|
33
|
+
cursor: pointer;
|
|
34
|
+
}
|
|
35
|
+
|
|
24
36
|
.k-badge-start-icon {
|
|
25
37
|
display: inline-flex;
|
|
26
38
|
align-items: center;
|
|
@@ -67,33 +79,33 @@ button.k-badge {
|
|
|
67
79
|
|
|
68
80
|
/* Variants */
|
|
69
81
|
.k-badge-primary {
|
|
70
|
-
background-color: var(--primary-color);
|
|
71
|
-
color: var(--text-color-light);
|
|
82
|
+
background-color: var(--k-primary-color);
|
|
83
|
+
color: var(--k-text-color-light);
|
|
72
84
|
}
|
|
73
85
|
|
|
74
86
|
.k-badge-secondary {
|
|
75
|
-
background-color: var(--secondary-color);
|
|
76
|
-
color: var(--text-color-light);
|
|
87
|
+
background-color: var(--k-secondary-color);
|
|
88
|
+
color: var(--k-text-color-light);
|
|
77
89
|
}
|
|
78
90
|
|
|
79
91
|
.k-badge-light {
|
|
80
|
-
background-color: var(--light-color-background);
|
|
81
|
-
color: var(--text-color);
|
|
92
|
+
background-color: var(--k-light-color-background);
|
|
93
|
+
color: var(--k-text-color);
|
|
82
94
|
}
|
|
83
95
|
|
|
84
96
|
.k-badge-danger {
|
|
85
|
-
background-color: var(--danger-color);
|
|
86
|
-
color: var(--text-color-light);
|
|
97
|
+
background-color: var(--k-danger-color);
|
|
98
|
+
color: var(--k-text-color-light);
|
|
87
99
|
}
|
|
88
100
|
|
|
89
101
|
.k-badge-warning {
|
|
90
|
-
background-color: var(--warning-color);
|
|
91
|
-
color: var(--warning-color-contrast);
|
|
102
|
+
background-color: var(--k-warning-color);
|
|
103
|
+
color: var(--k-warning-color-contrast);
|
|
92
104
|
}
|
|
93
105
|
|
|
94
106
|
.k-badge-success {
|
|
95
|
-
background-color: var(--success-color);
|
|
96
|
-
color: var(--text-color-light);
|
|
107
|
+
background-color: var(--k-success-color);
|
|
108
|
+
color: var(--k-text-color-light);
|
|
97
109
|
}
|
|
98
110
|
|
|
99
111
|
/* Pill shape */
|
|
@@ -107,58 +119,44 @@ button.k-badge {
|
|
|
107
119
|
}
|
|
108
120
|
|
|
109
121
|
/* Subtle variants - transparent background with colored text */
|
|
110
|
-
/* Subtle text blends the variant color 60/40 with --text-color: the full
|
|
122
|
+
/* Subtle text blends the variant color 60/40 with --k-text-color: the full
|
|
111
123
|
variant color on its own 15% tint falls under 4.5:1 for most variants. */
|
|
112
124
|
.k-badge-subtle.k-badge-primary {
|
|
113
|
-
background-color: color-mix(
|
|
114
|
-
|
|
115
|
-
var(--primary-color) 15%,
|
|
116
|
-
var(--background-color)
|
|
117
|
-
);
|
|
118
|
-
color: color-mix(in srgb, var(--primary-color) 60%, var(--text-color));
|
|
125
|
+
background-color: color-mix(in srgb, var(--k-primary-color) 15%, transparent);
|
|
126
|
+
color: color-mix(in srgb, var(--k-primary-color) 60%, var(--k-text-color));
|
|
119
127
|
}
|
|
120
128
|
|
|
121
129
|
.k-badge-subtle.k-badge-secondary {
|
|
122
130
|
background-color: color-mix(
|
|
123
131
|
in srgb,
|
|
124
|
-
var(--secondary-color) 15%,
|
|
125
|
-
|
|
132
|
+
var(--k-secondary-color) 15%,
|
|
133
|
+
transparent
|
|
126
134
|
);
|
|
127
|
-
color: color-mix(in srgb, var(--secondary-color) 60%, var(--text-color));
|
|
135
|
+
color: color-mix(in srgb, var(--k-secondary-color) 60%, var(--k-text-color));
|
|
128
136
|
}
|
|
129
137
|
|
|
130
138
|
.k-badge-subtle.k-badge-light {
|
|
131
|
-
background-color: color-mix(
|
|
132
|
-
|
|
133
|
-
var(--light-color) 30%,
|
|
134
|
-
var(--background-color)
|
|
135
|
-
);
|
|
136
|
-
color: var(--text-color);
|
|
139
|
+
background-color: color-mix(in srgb, var(--k-light-color) 30%, transparent);
|
|
140
|
+
color: var(--k-text-color);
|
|
137
141
|
}
|
|
138
142
|
|
|
139
143
|
.k-badge-subtle.k-badge-danger {
|
|
140
|
-
background-color: color-mix(
|
|
141
|
-
|
|
142
|
-
var(--danger-color) 15%,
|
|
143
|
-
var(--background-color)
|
|
144
|
-
);
|
|
145
|
-
color: color-mix(in srgb, var(--danger-color) 60%, var(--text-color));
|
|
144
|
+
background-color: color-mix(in srgb, var(--k-danger-color) 15%, transparent);
|
|
145
|
+
color: color-mix(in srgb, var(--k-danger-color) 60%, var(--k-text-color));
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
.k-badge-subtle.k-badge-warning {
|
|
149
|
-
background-color: color-mix(
|
|
150
|
-
|
|
151
|
-
var(--warning-color) 20%,
|
|
152
|
-
var(--background-color)
|
|
153
|
-
);
|
|
154
|
-
color: var(--warning-color-text);
|
|
149
|
+
background-color: color-mix(in srgb, var(--k-warning-color) 20%, transparent);
|
|
150
|
+
color: var(--k-warning-color-text);
|
|
155
151
|
}
|
|
156
152
|
|
|
157
153
|
.k-badge-subtle.k-badge-success {
|
|
158
|
-
background-color: color-mix(
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
154
|
+
background-color: color-mix(in srgb, var(--k-success-color) 15%, transparent);
|
|
155
|
+
color: color-mix(in srgb, var(--k-success-color) 60%, var(--k-text-color));
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/* The tint is translucent so it reads on any surface (striped rows, cards);
|
|
159
|
+
the inset outline keeps the edge visible where the tint alone is too faint. */
|
|
160
|
+
.k-badge-subtle {
|
|
161
|
+
box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 30%, transparent);
|
|
164
162
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.k-empty-state-inline {
|
|
2
2
|
font-size: 0.875rem;
|
|
3
|
-
color: var(--text-color-secondary);
|
|
3
|
+
color: var(--k-text-color-secondary);
|
|
4
4
|
font-style: italic;
|
|
5
5
|
padding: 0.5rem 0;
|
|
6
6
|
}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
gap: 0.75rem;
|
|
14
14
|
padding: 2rem 1rem;
|
|
15
15
|
text-align: center;
|
|
16
|
-
color: var(--text-color-secondary);
|
|
16
|
+
color: var(--k-text-color-secondary);
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
.k-empty-state-icon {
|
|
@@ -9,15 +9,15 @@
|
|
|
9
9
|
flex: 1;
|
|
10
10
|
min-width: 0;
|
|
11
11
|
height: 1.5625rem;
|
|
12
|
-
background-color: var(--background-color-dark);
|
|
12
|
+
background-color: var(--k-background-color-dark);
|
|
13
13
|
border-radius: 0.25rem;
|
|
14
14
|
overflow: hidden;
|
|
15
|
-
box-shadow: inset 0 0.0625rem 0.1875rem var(--shadow-color);
|
|
15
|
+
box-shadow: inset 0 0.0625rem 0.1875rem var(--k-shadow-color);
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
.k-progress-bar-fill {
|
|
19
19
|
height: 100%;
|
|
20
|
-
background-color: var(--success-color);
|
|
20
|
+
background-color: var(--k-success-color);
|
|
21
21
|
transition: width 0.5s ease-in-out;
|
|
22
22
|
}
|
|
23
23
|
|
|
@@ -25,27 +25,27 @@
|
|
|
25
25
|
flex-shrink: 0;
|
|
26
26
|
min-width: 2.75rem;
|
|
27
27
|
text-align: right;
|
|
28
|
-
font-size: var(--text-size-sm);
|
|
28
|
+
font-size: var(--k-text-size-sm);
|
|
29
29
|
font-weight: 600;
|
|
30
30
|
font-variant-numeric: tabular-nums;
|
|
31
|
-
color: var(--text-color);
|
|
31
|
+
color: var(--k-text-color);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
.k-progress-bar-fill-primary {
|
|
35
|
-
background-color: var(--primary-color);
|
|
35
|
+
background-color: var(--k-primary-color);
|
|
36
36
|
}
|
|
37
37
|
.k-progress-bar-fill-secondary {
|
|
38
|
-
background-color: var(--secondary-color);
|
|
38
|
+
background-color: var(--k-secondary-color);
|
|
39
39
|
}
|
|
40
40
|
.k-progress-bar-fill-light {
|
|
41
|
-
background-color: var(--light-color);
|
|
41
|
+
background-color: var(--k-light-color);
|
|
42
42
|
}
|
|
43
43
|
.k-progress-bar-fill-warning {
|
|
44
|
-
background-color: var(--warning-color);
|
|
44
|
+
background-color: var(--k-warning-color);
|
|
45
45
|
}
|
|
46
46
|
.k-progress-bar-fill-danger {
|
|
47
|
-
background-color: var(--danger-color);
|
|
47
|
+
background-color: var(--k-danger-color);
|
|
48
48
|
}
|
|
49
49
|
.k-progress-bar-fill-success {
|
|
50
|
-
background-color: var(--success-color);
|
|
50
|
+
background-color: var(--k-success-color);
|
|
51
51
|
}
|