@kismet-ux/constellation 1.0.1 → 1.2.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 +2 -0
- package/dist/brand/Logo/logo.css +68 -0
- package/dist/brand/Logo/logo.module.scss.js +3 -1
- package/dist/brand/Logo/logo.module.scss.js.map +1 -1
- package/dist/form/Checkbox/checkbox.css +124 -0
- package/dist/form/Checkbox/checkbox.js +53 -4
- package/dist/form/Checkbox/checkbox.js.map +1 -1
- package/dist/form/Checkbox/checkbox.module.scss.js +3 -1
- package/dist/form/Checkbox/checkbox.module.scss.js.map +1 -1
- package/dist/form/DatePicker/date-picker.css +175 -0
- package/dist/form/DatePicker/date-picker.js +52 -4
- package/dist/form/DatePicker/date-picker.js.map +1 -1
- package/dist/form/DatePicker/date-picker.module.scss.js +3 -1
- package/dist/form/DatePicker/date-picker.module.scss.js.map +1 -1
- package/dist/form/Input/input.css +155 -0
- package/dist/form/Input/input.module.scss.js +3 -1
- package/dist/form/Input/input.module.scss.js.map +1 -1
- package/dist/form/Label/label.css +57 -0
- package/dist/form/Label/label.module.scss.js +3 -1
- package/dist/form/Label/label.module.scss.js.map +1 -1
- package/dist/form/Select/select.css +213 -0
- package/dist/form/Select/select.module.scss.js +3 -1
- package/dist/form/Select/select.module.scss.js.map +1 -1
- package/dist/form.d.ts +1 -1
- package/dist/{index-qbk6vH0X.d.ts → index-CPpu2Wg4.d.ts} +2 -2
- package/dist/{index-DECPicJT.d.ts → index-DMy7AzMN.d.ts} +68 -23
- package/dist/{index-Bzf20Rpc.d.ts → index-YOC5H6Ls.d.ts} +2 -2
- package/dist/index.css +1 -6752
- package/dist/index.d.ts +6 -6
- package/dist/index.js +29 -26
- package/dist/index.js.map +1 -1
- package/dist/layout/AppContent/app-content.css +3 -0
- package/dist/layout/AppContent/app-content.module.scss.js +3 -1
- package/dist/layout/AppContent/app-content.module.scss.js.map +1 -1
- package/dist/layout/AppFooter/app-footer.css +12 -0
- package/dist/layout/AppFooter/app-footer.module.scss.js +3 -1
- package/dist/layout/AppFooter/app-footer.module.scss.js.map +1 -1
- package/dist/layout/AppSidebarHeader/app-sidebar-header.css +20 -0
- package/dist/layout/AppSidebarHeader/app-sidebar-header.js +29 -1
- package/dist/layout/AppSidebarHeader/app-sidebar-header.js.map +1 -1
- package/dist/layout/AppSidebarHeader/app-sidebar-header.module.scss.js +3 -1
- package/dist/layout/AppSidebarHeader/app-sidebar-header.module.scss.js.map +1 -1
- package/dist/layout/Collapse/collapse.css +19 -0
- package/dist/layout/Collapse/collapse.module.scss.js +3 -1
- package/dist/layout/Collapse/collapse.module.scss.js.map +1 -1
- package/dist/layout/Column/column.css +95 -0
- package/dist/layout/Column/column.module.scss.js +3 -1
- package/dist/layout/Column/column.module.scss.js.map +1 -1
- package/dist/layout/Container/container.css +482 -0
- package/dist/layout/Container/container.module.scss.js +3 -1
- package/dist/layout/Container/container.module.scss.js.map +1 -1
- package/dist/layout/Grid/grid.css +346 -0
- package/dist/layout/Grid/grid.module.scss.js +3 -1
- package/dist/layout/Grid/grid.module.scss.js.map +1 -1
- package/dist/layout/Row/row.css +125 -0
- package/dist/layout/Row/row.module.scss.js +3 -1
- package/dist/layout/Row/row.module.scss.js.map +1 -1
- package/dist/layout/Sidebar/sidebar.css +554 -0
- package/dist/layout/Sidebar/sidebar.module.scss.js +3 -1
- package/dist/layout/Sidebar/sidebar.module.scss.js.map +1 -1
- package/dist/layout/Skeleton/skeleton.css +17 -0
- package/dist/layout/Skeleton/skeleton.module.scss.js +3 -1
- package/dist/layout/Skeleton/skeleton.module.scss.js.map +1 -1
- package/dist/layout.d.ts +2 -2
- package/dist/navigation/Breadcrumbs/breadcrumbs.css +53 -0
- package/dist/navigation/Breadcrumbs/breadcrumbs.module.scss.js +3 -1
- package/dist/navigation/Breadcrumbs/breadcrumbs.module.scss.js.map +1 -1
- package/dist/navigation/DropdownMenu/dropdown-menu.css +193 -0
- package/dist/navigation/DropdownMenu/dropdown-menu.module.scss.js +3 -1
- package/dist/navigation/DropdownMenu/dropdown-menu.module.scss.js.map +1 -1
- package/dist/navigation/Link/link.css +62 -0
- package/dist/navigation/Link/link.module.scss.js +3 -1
- package/dist/navigation/Link/link.module.scss.js.map +1 -1
- package/dist/navigation/NavUser/nav-user.css +21 -0
- package/dist/navigation/NavUser/nav-user.js +2 -2
- package/dist/navigation/NavUser/nav-user.module.scss.js +3 -1
- package/dist/navigation/NavUser/nav-user.module.scss.js.map +1 -1
- package/dist/navigation/Sheet/sheet.css +253 -0
- package/dist/navigation/Sheet/sheet.js +28 -3
- package/dist/navigation/Sheet/sheet.js.map +1 -1
- package/dist/navigation/Sheet/sheet.module.scss.js +3 -1
- package/dist/navigation/Sheet/sheet.module.scss.js.map +1 -1
- package/dist/navigation.d.ts +1 -1
- package/dist/settings/AppearanceTabs/appearance-tabs.css +12 -0
- package/dist/settings/AppearanceTabs/appearance-tabs.js +26 -1
- package/dist/settings/AppearanceTabs/appearance-tabs.js.map +1 -1
- package/dist/settings/AppearanceTabs/appearance-tabs.module.scss.js +3 -1
- package/dist/settings/AppearanceTabs/appearance-tabs.module.scss.js.map +1 -1
- package/dist/{tooltip-XagXjWLB.d.ts → tooltip-DoCbTucr.d.ts} +3 -3
- package/dist/typography/Heading/heading.css +9 -0
- package/dist/typography/Heading/heading.module.scss.js +3 -1
- package/dist/typography/Heading/heading.module.scss.js.map +1 -1
- package/dist/typography/TruncatedText/truncated-text.css +12 -0
- package/dist/typography/TruncatedText/truncated-text.module.scss.js +3 -1
- package/dist/typography/TruncatedText/truncated-text.module.scss.js.map +1 -1
- package/dist/typography/Typography/typography.css +227 -0
- package/dist/typography/Typography/typography.module.scss.js +3 -1
- package/dist/typography/Typography/typography.module.scss.js.map +1 -1
- package/dist/ui/Alert/alert.css +295 -0
- package/dist/ui/Alert/alert.module.scss.js +3 -1
- package/dist/ui/Alert/alert.module.scss.js.map +1 -1
- package/dist/ui/Avatar/avatar.css +36 -0
- package/dist/ui/Avatar/avatar.module.scss.js +3 -1
- package/dist/ui/Avatar/avatar.module.scss.js.map +1 -1
- package/dist/ui/Button/button.css +451 -0
- package/dist/ui/Button/button.module.scss.js +3 -1
- package/dist/ui/Button/button.module.scss.js.map +1 -1
- package/dist/ui/Chip/chip-variants.d.ts +6 -1
- package/dist/ui/Chip/chip-variants.d.ts.map +1 -1
- package/dist/ui/Chip/chip-variants.js +19 -2
- package/dist/ui/Chip/chip-variants.js.map +1 -1
- package/dist/ui/Chip/chip.css +229 -0
- package/dist/ui/Chip/chip.d.ts +14 -0
- package/dist/ui/Chip/chip.d.ts.map +1 -1
- package/dist/ui/Chip/chip.js +10 -2
- package/dist/ui/Chip/chip.js.map +1 -1
- package/dist/ui/Chip/chip.module.scss.js +3 -1
- package/dist/ui/Chip/chip.module.scss.js.map +1 -1
- package/dist/ui/CodeBlock/code-block.css +217 -0
- package/dist/ui/CodeBlock/code-block.module.scss.js +3 -1
- package/dist/ui/CodeBlock/code-block.module.scss.js.map +1 -1
- package/dist/ui/DevIndicator/dev-indicator.css +31 -0
- package/dist/ui/DevIndicator/dev-indicator.module.scss.js +3 -1
- package/dist/ui/DevIndicator/dev-indicator.module.scss.js.map +1 -1
- package/dist/ui/Dialog/dialog.css +111 -0
- package/dist/ui/Dialog/dialog.module.scss.js +3 -1
- package/dist/ui/Dialog/dialog.module.scss.js.map +1 -1
- package/dist/ui/EmptyState/empty-state.css +183 -0
- package/dist/ui/EmptyState/empty-state.module.scss.js +3 -1
- package/dist/ui/EmptyState/empty-state.module.scss.js.map +1 -1
- package/dist/ui/Icon/icon.css +183 -0
- package/dist/ui/Icon/icon.module.scss.js +3 -1
- package/dist/ui/Icon/icon.module.scss.js.map +1 -1
- package/dist/ui/List/list.css +116 -0
- package/dist/ui/List/list.module.scss.js +3 -1
- package/dist/ui/List/list.module.scss.js.map +1 -1
- package/dist/ui/Pagination/pagination.css +31 -0
- package/dist/ui/Pagination/pagination.module.scss.js +3 -1
- package/dist/ui/Pagination/pagination.module.scss.js.map +1 -1
- package/dist/ui/ProgressBar/progress-bar.css +110 -0
- package/dist/ui/ProgressBar/progress-bar.module.scss.js +3 -1
- package/dist/ui/ProgressBar/progress-bar.module.scss.js.map +1 -1
- package/dist/ui/Separator/separator.css +14 -0
- package/dist/ui/Separator/separator.module.scss.js +3 -1
- package/dist/ui/Separator/separator.module.scss.js.map +1 -1
- package/dist/ui/StatCard/stat-card.css +112 -0
- package/dist/ui/StatCard/stat-card.module.scss.js +3 -1
- package/dist/ui/StatCard/stat-card.module.scss.js.map +1 -1
- package/dist/ui/StatusDot/index.d.ts +3 -0
- package/dist/ui/StatusDot/index.d.ts.map +1 -0
- package/dist/ui/StatusDot/status-dot-variants.d.ts +7 -0
- package/dist/ui/StatusDot/status-dot-variants.d.ts.map +1 -0
- package/dist/ui/StatusDot/status-dot-variants.js +28 -0
- package/dist/ui/StatusDot/status-dot-variants.js.map +1 -0
- package/dist/ui/StatusDot/status-dot.css +61 -0
- package/dist/ui/StatusDot/status-dot.d.ts +23 -0
- package/dist/ui/StatusDot/status-dot.d.ts.map +1 -0
- package/dist/ui/StatusDot/status-dot.js +23 -0
- package/dist/ui/StatusDot/status-dot.js.map +1 -0
- package/dist/ui/StatusDot/status-dot.module.scss.js +6 -0
- package/dist/ui/StatusDot/status-dot.module.scss.js.map +1 -0
- package/dist/ui/StepProgress/step-progress.css +333 -0
- package/dist/ui/StepProgress/step-progress.module.scss.js +3 -1
- package/dist/ui/StepProgress/step-progress.module.scss.js.map +1 -1
- package/dist/ui/Switch/switch.css +116 -0
- package/dist/ui/Switch/switch.module.scss.js +3 -1
- package/dist/ui/Switch/switch.module.scss.js.map +1 -1
- package/dist/ui/Table/table.css +131 -0
- package/dist/ui/Table/table.module.scss.js +3 -1
- package/dist/ui/Table/table.module.scss.js.map +1 -1
- package/dist/ui/TableActionCell/table-action-cell.css +15 -0
- package/dist/ui/TableActionCell/table-action-cell.module.scss.js +3 -1
- package/dist/ui/TableActionCell/table-action-cell.module.scss.js.map +1 -1
- package/dist/ui/TableToolbar/table-toolbar.css +36 -0
- package/dist/ui/TableToolbar/table-toolbar.module.scss.js +3 -1
- package/dist/ui/TableToolbar/table-toolbar.module.scss.js.map +1 -1
- package/dist/ui/Toggle/toggle.css +551 -0
- package/dist/ui/Toggle/toggle.module.scss.js +3 -1
- package/dist/ui/Toggle/toggle.module.scss.js.map +1 -1
- package/dist/ui/ToggleGroup/toggle-group.css +70 -0
- package/dist/ui/ToggleGroup/toggle-group.module.scss.js +3 -1
- package/dist/ui/ToggleGroup/toggle-group.module.scss.js.map +1 -1
- package/dist/ui/Tooltip/tooltip.css +93 -0
- package/dist/ui/Tooltip/tooltip.module.scss.js +3 -1
- package/dist/ui/Tooltip/tooltip.module.scss.js.map +1 -1
- package/dist/ui/index.d.ts +1 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui.d.ts +2 -2
- package/dist/ui.js +2 -0
- package/dist/ui.js.map +1 -1
- package/dist/user/UserInfo/user-info.css +29 -0
- package/dist/user/UserInfo/user-info.module.scss.js +3 -1
- package/dist/user/UserInfo/user-info.module.scss.js.map +1 -1
- package/package.json +3 -2
- package/dist/index.css.map +0 -1
package/README.md
CHANGED
|
@@ -30,6 +30,8 @@ import '@kismet-ux/constellation/styles';
|
|
|
30
30
|
import { Button } from '@kismet-ux/constellation/ui';
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
+
**You only pay for what you render.** Each component ships its own stylesheet, imported by the component itself, so your bundler drops the CSS for everything you don't use — the same way it drops the JS. Importing `…/styles` gives you the tokens and reset (4.6 kB gzipped); each component adds its own on top.
|
|
34
|
+
|
|
33
35
|
Installed, the SCSS is already compiled, so the two-file seam isn't available to you — retheme by overriding the custom properties *after* importing the stylesheet. Every token in the next section is fair game:
|
|
34
36
|
|
|
35
37
|
```css
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
.logo-module_logo__TydU0 {
|
|
2
|
+
align-items: center;
|
|
3
|
+
display: inline-flex;
|
|
4
|
+
gap: 0.5em;
|
|
5
|
+
height: var(--logo-height, var(--size-4));
|
|
6
|
+
line-height: 1;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.logo-module_mark__wd5zo {
|
|
10
|
+
align-items: center;
|
|
11
|
+
aspect-ratio: 1;
|
|
12
|
+
display: inline-flex;
|
|
13
|
+
flex: 0 0 auto;
|
|
14
|
+
height: 100%;
|
|
15
|
+
justify-content: center;
|
|
16
|
+
}
|
|
17
|
+
.logo-module_mark__wd5zo svg {
|
|
18
|
+
height: 100%;
|
|
19
|
+
width: 100%;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.logo-module_mark-link__YaA78 {
|
|
23
|
+
fill: none;
|
|
24
|
+
opacity: 0.45;
|
|
25
|
+
stroke: var(--logo-mark, var(--primary-main));
|
|
26
|
+
stroke-linecap: round;
|
|
27
|
+
stroke-linejoin: round;
|
|
28
|
+
stroke-width: 1.25;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.logo-module_mark-star__42Uji,
|
|
32
|
+
.logo-module_mark-star-dim__5fGBz,
|
|
33
|
+
.logo-module_mark-star-lead__YKp62 {
|
|
34
|
+
fill: var(--logo-mark, var(--primary-main));
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.logo-module_mark-star__42Uji {
|
|
38
|
+
opacity: 0.85;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.logo-module_mark-star-dim__5fGBz {
|
|
42
|
+
opacity: 0.55;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.logo-module_wordmark___KAG5 {
|
|
46
|
+
color: var(--logo-fill);
|
|
47
|
+
font-family: var(--font-sans);
|
|
48
|
+
font-size: calc(var(--logo-height, var(--size-4)) * 0.52);
|
|
49
|
+
font-weight: 600;
|
|
50
|
+
letter-spacing: -0.02em;
|
|
51
|
+
max-width: 24ch;
|
|
52
|
+
opacity: 1;
|
|
53
|
+
transition: max-width 0.2s ease, opacity 0.2s ease;
|
|
54
|
+
white-space: nowrap;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
div[data-state='collapsed'] .logo-module_wordmark___KAG5 {
|
|
58
|
+
max-width: 0;
|
|
59
|
+
opacity: 0;
|
|
60
|
+
overflow: hidden;
|
|
61
|
+
pointer-events: none;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
@media (prefers-reduced-motion: reduce) {
|
|
65
|
+
.logo-module_wordmark___KAG5 {
|
|
66
|
+
transition: none;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import './logo.css';
|
|
2
|
+
|
|
3
|
+
var s = {"logo":"logo-module_logo__TydU0","mark":"logo-module_mark__wd5zo","mark-link":"logo-module_mark-link__YaA78","mark-star":"logo-module_mark-star__42Uji","mark-star-dim":"logo-module_mark-star-dim__5fGBz","mark-star-lead":"logo-module_mark-star-lead__YKp62","wordmark":"logo-module_wordmark___KAG5"};
|
|
2
4
|
|
|
3
5
|
export { s as default };
|
|
4
6
|
//# sourceMappingURL=logo.module.scss.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logo.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logo.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
.checkbox-module_theme-inherit__9-o7A {
|
|
2
|
+
--checkbox-theme-main: var(--inherit-main);
|
|
3
|
+
--checkbox-theme-contrast: var(--inherit-contrast);
|
|
4
|
+
--checkbox-theme-emphasis: var(--inherit-main);
|
|
5
|
+
--checkbox-theme-focus-visible: var(--inherit-focus-visible);
|
|
6
|
+
--checkbox-theme-outlined-border: var(--inherit-outlined-border);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.checkbox-module_theme-primary__zyuNX {
|
|
10
|
+
--checkbox-theme-main: var(--primary-main);
|
|
11
|
+
--checkbox-theme-contrast: var(--primary-contrast);
|
|
12
|
+
--checkbox-theme-emphasis: var(--primary-emphasis);
|
|
13
|
+
--checkbox-theme-focus-visible: var(--primary-focus-visible);
|
|
14
|
+
--checkbox-theme-outlined-border: var(--primary-outlined-border);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.checkbox-module_theme-secondary__JUYKr {
|
|
18
|
+
--checkbox-theme-main: var(--secondary-main);
|
|
19
|
+
--checkbox-theme-contrast: var(--secondary-contrast);
|
|
20
|
+
--checkbox-theme-emphasis: var(--secondary-emphasis);
|
|
21
|
+
--checkbox-theme-focus-visible: var(--secondary-focus-visible);
|
|
22
|
+
--checkbox-theme-outlined-border: var(--secondary-outlined-border);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.checkbox-module_theme-destructive__M8AgU {
|
|
26
|
+
--checkbox-theme-main: var(--destructive-main);
|
|
27
|
+
--checkbox-theme-contrast: var(--destructive-contrast);
|
|
28
|
+
--checkbox-theme-emphasis: var(--destructive-emphasis);
|
|
29
|
+
--checkbox-theme-focus-visible: var(--destructive-focus-visible);
|
|
30
|
+
--checkbox-theme-outlined-border: var(--destructive-outlined-border);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.checkbox-module_theme-warning__AKuuE {
|
|
34
|
+
--checkbox-theme-main: var(--warning-main);
|
|
35
|
+
--checkbox-theme-contrast: var(--warning-contrast);
|
|
36
|
+
--checkbox-theme-emphasis: var(--warning-emphasis);
|
|
37
|
+
--checkbox-theme-focus-visible: var(--warning-focus-visible);
|
|
38
|
+
--checkbox-theme-outlined-border: var(--warning-outlined-border);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.checkbox-module_theme-success__Mp45s {
|
|
42
|
+
--checkbox-theme-main: var(--success-main);
|
|
43
|
+
--checkbox-theme-contrast: var(--success-contrast);
|
|
44
|
+
--checkbox-theme-emphasis: var(--success-emphasis);
|
|
45
|
+
--checkbox-theme-focus-visible: var(--success-focus-visible);
|
|
46
|
+
--checkbox-theme-outlined-border: var(--success-outlined-border);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.checkbox-module_theme-info__Gdbcb {
|
|
50
|
+
--checkbox-theme-main: var(--info-main);
|
|
51
|
+
--checkbox-theme-contrast: var(--info-contrast);
|
|
52
|
+
--checkbox-theme-emphasis: var(--info-emphasis);
|
|
53
|
+
--checkbox-theme-focus-visible: var(--info-focus-visible);
|
|
54
|
+
--checkbox-theme-outlined-border: var(--info-outlined-border);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.checkbox-module_theme-slate__eMHDz {
|
|
58
|
+
--checkbox-theme-main: var(--slate-main);
|
|
59
|
+
--checkbox-theme-contrast: var(--slate-contrast);
|
|
60
|
+
--checkbox-theme-emphasis: var(--slate-emphasis);
|
|
61
|
+
--checkbox-theme-focus-visible: var(--slate-focus-visible);
|
|
62
|
+
--checkbox-theme-outlined-border: var(--slate-outlined-border);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.checkbox-module_checkbox__8YN87 {
|
|
66
|
+
--checkbox-theme-main: var(--primary-main);
|
|
67
|
+
--checkbox-theme-contrast: var(--primary-contrast);
|
|
68
|
+
--checkbox-theme-emphasis: var(--primary-emphasis);
|
|
69
|
+
--checkbox-theme-focus-visible: var(--primary-focus-visible);
|
|
70
|
+
--checkbox-theme-outlined-border: var(--primary-outlined-border);
|
|
71
|
+
align-items: center;
|
|
72
|
+
background-color: var(--background-elevation-2);
|
|
73
|
+
border: 1px solid var(--input-outlined-enabled-border);
|
|
74
|
+
border-radius: 4px;
|
|
75
|
+
box-shadow: var(--shadow-sm);
|
|
76
|
+
color: var(--text-primary);
|
|
77
|
+
display: inline-flex;
|
|
78
|
+
flex-shrink: 0;
|
|
79
|
+
height: 1.125rem;
|
|
80
|
+
justify-content: center;
|
|
81
|
+
outline: none;
|
|
82
|
+
width: 1.125rem;
|
|
83
|
+
}
|
|
84
|
+
.checkbox-module_checkbox__8YN87[data-state=checked] {
|
|
85
|
+
background-color: var(--checkbox-theme-main);
|
|
86
|
+
border-color: var(--checkbox-theme-main);
|
|
87
|
+
color: var(--checkbox-theme-contrast);
|
|
88
|
+
}
|
|
89
|
+
.checkbox-module_checkbox__8YN87:focus-visible {
|
|
90
|
+
border-color: var(--checkbox-theme-emphasis);
|
|
91
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--checkbox-theme-focus-visible) 20%, transparent);
|
|
92
|
+
}
|
|
93
|
+
.checkbox-module_checkbox__8YN87[aria-invalid=true] {
|
|
94
|
+
border-color: var(--destructive-emphasis);
|
|
95
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--destructive-focus-visible) 20%, transparent);
|
|
96
|
+
}
|
|
97
|
+
.checkbox-module_checkbox__8YN87:disabled {
|
|
98
|
+
cursor: not-allowed;
|
|
99
|
+
opacity: 0.5;
|
|
100
|
+
pointer-events: none;
|
|
101
|
+
}
|
|
102
|
+
.checkbox-module_checkbox__8YN87 .checkbox-module_indicator__RVW8h {
|
|
103
|
+
align-items: center;
|
|
104
|
+
color: currentColor;
|
|
105
|
+
display: flex;
|
|
106
|
+
justify-content: center;
|
|
107
|
+
}
|
|
108
|
+
.checkbox-module_checkbox__8YN87 .checkbox-module_icon__azmqw {
|
|
109
|
+
height: 1rem;
|
|
110
|
+
width: 1rem;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.checkbox-module_label__rVKGq {
|
|
114
|
+
cursor: pointer;
|
|
115
|
+
user-select: none;
|
|
116
|
+
}
|
|
117
|
+
.checkbox-module_label__rVKGq.checkbox-module_label--disabled__iHm0R {
|
|
118
|
+
cursor: not-allowed;
|
|
119
|
+
opacity: 0.6;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.checkbox-module_helper-text__d0ZOs {
|
|
123
|
+
margin-left: calc(1.125rem + var(--size-1));
|
|
124
|
+
}
|
|
@@ -1,12 +1,61 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { Label } from '../Label/label.js';
|
|
3
|
-
import { Typography } from '../../typography/Typography/typography.js';
|
|
4
3
|
import cn from 'clsx';
|
|
5
|
-
import
|
|
4
|
+
import '../Input/input.js';
|
|
5
|
+
import '../../layout/Sidebar/sidebar-context.js';
|
|
6
6
|
import * as React from 'react';
|
|
7
|
-
import
|
|
8
|
-
import
|
|
7
|
+
import '../../ui/Alert/alert-context.js';
|
|
8
|
+
import '../../ui/Table/table-sort-context.js';
|
|
9
|
+
import '../../layout/Skeleton/skeleton.css';
|
|
10
|
+
import '../../navigation/Sheet/sheet.js';
|
|
11
|
+
import '../../ui/Button/button.js';
|
|
12
|
+
import '../../ui/Tooltip/tooltip.js';
|
|
13
|
+
import { CheckIcon } from 'lucide-react';
|
|
14
|
+
import '../../internal/slot.js';
|
|
15
|
+
import '../../layout/Sidebar/sidebar-variants.js';
|
|
16
|
+
import '../../layout/Sidebar/sidebar.css';
|
|
17
|
+
import '../../layout/AppContent/app-content.css';
|
|
9
18
|
import { Row } from '../../layout/Row/row.js';
|
|
19
|
+
import '../../navigation/Link/link.js';
|
|
20
|
+
import { Typography } from '../../typography/Typography/typography.js';
|
|
21
|
+
import '../../layout/AppFooter/app-footer.css';
|
|
22
|
+
import '../../navigation/Router/router-context.js';
|
|
23
|
+
import '../../ui/Separator/separator.js';
|
|
24
|
+
import 'react-dom';
|
|
25
|
+
import '../../typography/TruncatedText/truncated-text.js';
|
|
26
|
+
import '../../navigation/Breadcrumbs/breadcrumbs.css';
|
|
27
|
+
import '../../navigation/DropdownMenu/dropdown-menu.js';
|
|
28
|
+
import '../../ui/Avatar/avatar.js';
|
|
29
|
+
import '../../user/UserInfo/user-info.css';
|
|
30
|
+
import '../../navigation/NavUser/nav-user.css';
|
|
31
|
+
import '../../ui/Alert/alert.js';
|
|
32
|
+
import '../../ui/Alert/alert.css';
|
|
33
|
+
import '../../ui/Chip/chip.js';
|
|
34
|
+
import '../../ui/CodeBlock/code-block.js';
|
|
35
|
+
import '../../ui/DevIndicator/dev-indicator.css';
|
|
36
|
+
import '../../ui/Dialog/dialog.js';
|
|
37
|
+
import '../../ui/EmptyState/empty-state.js';
|
|
38
|
+
import '../../ui/Icon/icon.js';
|
|
39
|
+
import '../../ui/List/list.js';
|
|
40
|
+
import '../../ui/Pagination/pagination.js';
|
|
41
|
+
import '../../ui/ProgressBar/progress-bar.js';
|
|
42
|
+
import '../../ui/StatCard/stat-card.js';
|
|
43
|
+
import '../../ui/StatusDot/status-dot.js';
|
|
44
|
+
import '../../ui/StatusDot/status-dot-variants.js';
|
|
45
|
+
import '../../ui/StepProgress/step-progress.js';
|
|
46
|
+
import '../../ui/Switch/switch.js';
|
|
47
|
+
import '../../ui/Table/table.js';
|
|
48
|
+
import '../../ui/TableActionCell/table-action-cell.js';
|
|
49
|
+
import '../../ui/TableToolbar/table-toolbar.js';
|
|
50
|
+
import '../../ui/Toggle/toggle.js';
|
|
51
|
+
import '../../ui/ToggleGroup/toggle-group.js';
|
|
52
|
+
import '../../settings/AppearanceTabs/appearance-tabs.css';
|
|
53
|
+
import '../../layout/AppSidebarHeader/app-sidebar-header.css';
|
|
54
|
+
import '../../layout/Collapse/collapse.js';
|
|
55
|
+
import { Column } from '../../layout/Column/column.js';
|
|
56
|
+
import '../../layout/Container/container.js';
|
|
57
|
+
import '../../layout/Grid/grid.js';
|
|
58
|
+
import s from './checkbox.module.scss.js';
|
|
10
59
|
|
|
11
60
|
const Checkbox = React.forwardRef(({ className, id, theme = 'primary', destructive = false, checked: controlledChecked, defaultChecked = false, onCheckedChange, disabled, value = 'on', name, required, label, helperText, ['aria-invalid']: ariaInvalid, ['aria-describedby']: ariaDescribedBy, onClick, onKeyDown, ...props }, ref) => {
|
|
12
61
|
const isControlled = controlledChecked !== undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.js","sources":["../../../src/form/Checkbox/checkbox.tsx"],"sourcesContent":["import { Label } from '@constellation/form/Label';\nimport { Column, Row } from '@constellation/layout';\nimport { type FormTheme } from '@constellation/types';\nimport { Typography } from '@constellation/typography/Typography';\nimport cn from 'clsx';\nimport { CheckIcon } from 'lucide-react';\nimport * as React from 'react';\nimport s from './checkbox.module.scss';\n\ntype CheckedState = boolean | 'indeterminate';\n\nexport interface CheckboxProps extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n 'onChange' | 'value' | 'defaultValue' | 'defaultChecked'\n> {\n theme?: FormTheme;\n destructive?: boolean;\n checked?: CheckedState;\n defaultChecked?: CheckedState;\n onCheckedChange?: (checked: CheckedState) => void;\n value?: string;\n name?: string;\n required?: boolean;\n /** Optional inline label rendered to the right of the checkbox and associated via htmlFor. */\n label?: React.ReactNode;\n /** Optional helper / validation text rendered beneath the checkbox + label row. */\n helperText?: React.ReactNode;\n}\n\nconst Checkbox = React.forwardRef<HTMLButtonElement, CheckboxProps>(\n (\n {\n className,\n id,\n theme = 'primary',\n destructive = false,\n checked: controlledChecked,\n defaultChecked = false,\n onCheckedChange,\n disabled,\n value = 'on',\n name,\n required,\n label,\n helperText,\n ['aria-invalid']: ariaInvalid,\n ['aria-describedby']: ariaDescribedBy,\n onClick,\n onKeyDown,\n ...props\n },\n ref,\n ) => {\n const isControlled = controlledChecked !== undefined;\n const [internalChecked, setInternalChecked] = React.useState<CheckedState>(defaultChecked);\n const checked = isControlled ? controlledChecked : internalChecked;\n\n const generatedId = React.useId();\n const checkboxId = id ?? generatedId;\n const helperId = helperText ? `${checkboxId}-helper` : undefined;\n const describedBy = [ariaDescribedBy, helperId].filter(Boolean).join(' ') || undefined;\n\n const dataState =\n checked === 'indeterminate' ? 'indeterminate' : checked ? 'checked' : 'unchecked';\n\n const toggle = () => {\n if (disabled) return;\n const next = checked === 'indeterminate' ? true : !checked;\n if (!isControlled) {\n setInternalChecked(next);\n }\n onCheckedChange?.(next);\n };\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n toggle();\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(e);\n if (e.defaultPrevented) return;\n if (e.key === ' ') {\n e.preventDefault();\n toggle();\n }\n };\n\n const button = (\n <button\n ref={ref}\n id={checkboxId}\n type={'button'}\n role={'checkbox'}\n aria-checked={checked === 'indeterminate' ? 'mixed' : checked}\n aria-invalid={destructive ? 'true' : ariaInvalid}\n aria-required={required}\n aria-describedby={describedBy}\n data-slot={'checkbox'}\n data-state={dataState}\n disabled={disabled}\n className={cn(s.checkbox, s[`theme-${theme}`], className)}\n {...props}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {checked ? (\n <span data-slot={'checkbox-indicator'} className={s.indicator}>\n <CheckIcon className={s.icon} />\n </span>\n ) : null}\n </button>\n );\n\n // Match native <input type='checkbox'> form-submission semantics: an\n // unchecked (or indeterminate) box is omitted entirely from the submission,\n // not present-but-empty. Only emit the hidden input when actually checked.\n const hiddenInput =\n name && checked === true ? <input type={'hidden'} name={name} value={value} /> : null;\n\n if (label === undefined && helperText === undefined) {\n return (\n <>\n {button}\n {hiddenInput}\n </>\n );\n }\n\n return (\n <Column data-slot={'checkbox-field'} gap={1}>\n <Row data-slot={'checkbox-row'} gap={1} align={'center'}>\n {button}\n {label !== undefined ? (\n <Label\n data-slot={'checkbox-label'}\n htmlFor={checkboxId}\n className={cn(s['label'], disabled && s['label--disabled'])}\n theme={destructive ? 'destructive' : 'inherit'}\n >\n {label}\n </Label>\n ) : null}\n </Row>\n {helperText !== undefined ? (\n <Typography\n data-slot={'checkbox-helper-text'}\n id={helperId}\n variant={'caption'}\n theme={destructive ? 'destructive' : 'muted'}\n className={s['helper-text']}\n >\n {helperText}\n </Typography>\n ) : null}\n {hiddenInput}\n </Column>\n );\n },\n);\nCheckbox.displayName = 'Checkbox';\n\nexport { Checkbox };\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"
|
|
1
|
+
{"version":3,"file":"checkbox.js","sources":["../../../src/form/Checkbox/checkbox.tsx"],"sourcesContent":["import { Label } from '@constellation/form/Label';\nimport { Column, Row } from '@constellation/layout';\nimport { type FormTheme } from '@constellation/types';\nimport { Typography } from '@constellation/typography/Typography';\nimport cn from 'clsx';\nimport { CheckIcon } from 'lucide-react';\nimport * as React from 'react';\nimport s from './checkbox.module.scss';\n\ntype CheckedState = boolean | 'indeterminate';\n\nexport interface CheckboxProps extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n 'onChange' | 'value' | 'defaultValue' | 'defaultChecked'\n> {\n theme?: FormTheme;\n destructive?: boolean;\n checked?: CheckedState;\n defaultChecked?: CheckedState;\n onCheckedChange?: (checked: CheckedState) => void;\n value?: string;\n name?: string;\n required?: boolean;\n /** Optional inline label rendered to the right of the checkbox and associated via htmlFor. */\n label?: React.ReactNode;\n /** Optional helper / validation text rendered beneath the checkbox + label row. */\n helperText?: React.ReactNode;\n}\n\nconst Checkbox = React.forwardRef<HTMLButtonElement, CheckboxProps>(\n (\n {\n className,\n id,\n theme = 'primary',\n destructive = false,\n checked: controlledChecked,\n defaultChecked = false,\n onCheckedChange,\n disabled,\n value = 'on',\n name,\n required,\n label,\n helperText,\n ['aria-invalid']: ariaInvalid,\n ['aria-describedby']: ariaDescribedBy,\n onClick,\n onKeyDown,\n ...props\n },\n ref,\n ) => {\n const isControlled = controlledChecked !== undefined;\n const [internalChecked, setInternalChecked] = React.useState<CheckedState>(defaultChecked);\n const checked = isControlled ? controlledChecked : internalChecked;\n\n const generatedId = React.useId();\n const checkboxId = id ?? generatedId;\n const helperId = helperText ? `${checkboxId}-helper` : undefined;\n const describedBy = [ariaDescribedBy, helperId].filter(Boolean).join(' ') || undefined;\n\n const dataState =\n checked === 'indeterminate' ? 'indeterminate' : checked ? 'checked' : 'unchecked';\n\n const toggle = () => {\n if (disabled) return;\n const next = checked === 'indeterminate' ? true : !checked;\n if (!isControlled) {\n setInternalChecked(next);\n }\n onCheckedChange?.(next);\n };\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n toggle();\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(e);\n if (e.defaultPrevented) return;\n if (e.key === ' ') {\n e.preventDefault();\n toggle();\n }\n };\n\n const button = (\n <button\n ref={ref}\n id={checkboxId}\n type={'button'}\n role={'checkbox'}\n aria-checked={checked === 'indeterminate' ? 'mixed' : checked}\n aria-invalid={destructive ? 'true' : ariaInvalid}\n aria-required={required}\n aria-describedby={describedBy}\n data-slot={'checkbox'}\n data-state={dataState}\n disabled={disabled}\n className={cn(s.checkbox, s[`theme-${theme}`], className)}\n {...props}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {checked ? (\n <span data-slot={'checkbox-indicator'} className={s.indicator}>\n <CheckIcon className={s.icon} />\n </span>\n ) : null}\n </button>\n );\n\n // Match native <input type='checkbox'> form-submission semantics: an\n // unchecked (or indeterminate) box is omitted entirely from the submission,\n // not present-but-empty. Only emit the hidden input when actually checked.\n const hiddenInput =\n name && checked === true ? <input type={'hidden'} name={name} value={value} /> : null;\n\n if (label === undefined && helperText === undefined) {\n return (\n <>\n {button}\n {hiddenInput}\n </>\n );\n }\n\n return (\n <Column data-slot={'checkbox-field'} gap={1}>\n <Row data-slot={'checkbox-row'} gap={1} align={'center'}>\n {button}\n {label !== undefined ? (\n <Label\n data-slot={'checkbox-label'}\n htmlFor={checkboxId}\n className={cn(s['label'], disabled && s['label--disabled'])}\n theme={destructive ? 'destructive' : 'inherit'}\n >\n {label}\n </Label>\n ) : null}\n </Row>\n {helperText !== undefined ? (\n <Typography\n data-slot={'checkbox-helper-text'}\n id={helperId}\n variant={'caption'}\n theme={destructive ? 'destructive' : 'muted'}\n className={s['helper-text']}\n >\n {helperText}\n </Typography>\n ) : null}\n {hiddenInput}\n </Column>\n );\n },\n);\nCheckbox.displayName = 'Checkbox';\n\nexport { Checkbox };\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import './checkbox.css';
|
|
2
|
+
|
|
3
|
+
var s = {"theme-inherit":"checkbox-module_theme-inherit__9-o7A","theme-primary":"checkbox-module_theme-primary__zyuNX","theme-secondary":"checkbox-module_theme-secondary__JUYKr","theme-destructive":"checkbox-module_theme-destructive__M8AgU","theme-warning":"checkbox-module_theme-warning__AKuuE","theme-success":"checkbox-module_theme-success__Mp45s","theme-info":"checkbox-module_theme-info__Gdbcb","theme-slate":"checkbox-module_theme-slate__eMHDz","checkbox":"checkbox-module_checkbox__8YN87","indicator":"checkbox-module_indicator__RVW8h","icon":"checkbox-module_icon__azmqw","label":"checkbox-module_label__rVKGq","label--disabled":"checkbox-module_label--disabled__iHm0R","helper-text":"checkbox-module_helper-text__d0ZOs"};
|
|
2
4
|
|
|
3
5
|
export { s as default };
|
|
4
6
|
//# sourceMappingURL=checkbox.module.scss.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"checkbox.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--datepicker-background: color-mix(
|
|
3
|
+
in srgb,
|
|
4
|
+
var(--background-default) 98%,
|
|
5
|
+
var(--background-contrast)
|
|
6
|
+
);
|
|
7
|
+
--datepicker-duration: 200ms;
|
|
8
|
+
--datepicker-ease: cubic-bezier(0.4, 0, 0.2, 1);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
@keyframes date-picker-module_datepickerFadeIn__9vL75 {
|
|
12
|
+
from {
|
|
13
|
+
opacity: 0;
|
|
14
|
+
transform: scale(0.95);
|
|
15
|
+
}
|
|
16
|
+
to {
|
|
17
|
+
opacity: 1;
|
|
18
|
+
transform: scale(1);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
@keyframes date-picker-module_datepickerFadeOut__JZWqn {
|
|
22
|
+
from {
|
|
23
|
+
opacity: 1;
|
|
24
|
+
transform: scale(1);
|
|
25
|
+
}
|
|
26
|
+
to {
|
|
27
|
+
opacity: 0;
|
|
28
|
+
transform: scale(0.95);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
.date-picker-module_trigger__ETBtS {
|
|
32
|
+
align-items: center;
|
|
33
|
+
background: none;
|
|
34
|
+
border: none;
|
|
35
|
+
color: inherit;
|
|
36
|
+
cursor: pointer;
|
|
37
|
+
display: inline-flex;
|
|
38
|
+
flex-shrink: 0;
|
|
39
|
+
font-size: inherit;
|
|
40
|
+
justify-content: center;
|
|
41
|
+
outline: none;
|
|
42
|
+
padding: 0;
|
|
43
|
+
}
|
|
44
|
+
.date-picker-module_trigger__ETBtS:focus-visible {
|
|
45
|
+
outline: none;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.date-picker-module_text-input__bJeCY {
|
|
49
|
+
min-width: 0;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.date-picker-module_trigger-icon__1hfj_ {
|
|
53
|
+
color: var(--action-active);
|
|
54
|
+
flex-shrink: 0;
|
|
55
|
+
height: 1rem;
|
|
56
|
+
opacity: 0.6;
|
|
57
|
+
width: 1rem;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.date-picker-module_content__ZZBe0 {
|
|
61
|
+
animation-duration: var(--datepicker-duration);
|
|
62
|
+
animation-fill-mode: both;
|
|
63
|
+
animation-timing-function: var(--datepicker-ease);
|
|
64
|
+
background-color: var(--datepicker-background);
|
|
65
|
+
border: 1px solid var(--divider);
|
|
66
|
+
border-radius: 0.5rem;
|
|
67
|
+
box-shadow: var(--shadow-elevation-6);
|
|
68
|
+
color: var(--text-primary);
|
|
69
|
+
display: flex;
|
|
70
|
+
flex-direction: column;
|
|
71
|
+
gap: 0.25rem;
|
|
72
|
+
overflow: hidden;
|
|
73
|
+
padding: 0.5rem;
|
|
74
|
+
width: 17rem;
|
|
75
|
+
z-index: var(--z-popover);
|
|
76
|
+
}
|
|
77
|
+
.date-picker-module_content__ZZBe0[data-state=open] {
|
|
78
|
+
animation-name: date-picker-module_datepickerFadeIn__9vL75;
|
|
79
|
+
}
|
|
80
|
+
.date-picker-module_content__ZZBe0[data-state=closed] {
|
|
81
|
+
animation-name: date-picker-module_datepickerFadeOut__JZWqn;
|
|
82
|
+
}
|
|
83
|
+
.date-picker-module_content__ZZBe0[data-closing=true] {
|
|
84
|
+
animation-name: date-picker-module_datepickerFadeOut__JZWqn;
|
|
85
|
+
pointer-events: none;
|
|
86
|
+
}
|
|
87
|
+
.date-picker-module_content__ZZBe0[data-side=bottom] {
|
|
88
|
+
transform-origin: top;
|
|
89
|
+
}
|
|
90
|
+
.date-picker-module_content__ZZBe0[data-side=top] {
|
|
91
|
+
transform-origin: bottom;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.date-picker-module_header-trigger__1neop {
|
|
95
|
+
border: 1px solid var(--divider);
|
|
96
|
+
border-radius: 0.375rem;
|
|
97
|
+
font-size: 0.8rem;
|
|
98
|
+
gap: 0.125rem;
|
|
99
|
+
min-width: auto;
|
|
100
|
+
padding: 0.25rem 0.25rem 0.25rem 0.5rem;
|
|
101
|
+
transition: border-color var(--datepicker-duration) var(--datepicker-ease), background-color var(--datepicker-duration) var(--datepicker-ease);
|
|
102
|
+
}
|
|
103
|
+
.date-picker-module_header-trigger__1neop:hover {
|
|
104
|
+
background-color: var(--action-hover);
|
|
105
|
+
border-color: var(--text-secondary);
|
|
106
|
+
}
|
|
107
|
+
.date-picker-module_header-trigger__1neop:focus {
|
|
108
|
+
border-color: var(--primary-main);
|
|
109
|
+
}
|
|
110
|
+
.date-picker-module_header-trigger__1neop svg {
|
|
111
|
+
height: 0.875rem;
|
|
112
|
+
width: 0.875rem;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.date-picker-module_weekdays__b9C7m {
|
|
116
|
+
display: grid;
|
|
117
|
+
grid-template-columns: repeat(7, 1fr);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.date-picker-module_weekday__MhcvD {
|
|
121
|
+
color: var(--text-secondary);
|
|
122
|
+
font-size: 0.75rem;
|
|
123
|
+
font-weight: 500;
|
|
124
|
+
padding: 0.25rem 0;
|
|
125
|
+
text-align: center;
|
|
126
|
+
user-select: none;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.date-picker-module_grid__cJ4ZT {
|
|
130
|
+
display: grid;
|
|
131
|
+
grid-template-columns: repeat(7, 1fr);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.date-picker-module_day__3KTf0 {
|
|
135
|
+
align-items: center;
|
|
136
|
+
aspect-ratio: 1/1;
|
|
137
|
+
background: none;
|
|
138
|
+
border: none;
|
|
139
|
+
border-radius: 50%;
|
|
140
|
+
color: var(--text-primary);
|
|
141
|
+
cursor: pointer;
|
|
142
|
+
display: flex;
|
|
143
|
+
font-size: 0.8125rem;
|
|
144
|
+
justify-content: center;
|
|
145
|
+
padding: 0;
|
|
146
|
+
transition: background-color var(--datepicker-duration) var(--datepicker-ease), color var(--datepicker-duration) var(--datepicker-ease);
|
|
147
|
+
user-select: none;
|
|
148
|
+
width: 100%;
|
|
149
|
+
}
|
|
150
|
+
.date-picker-module_day__3KTf0:hover:not(:disabled):not(.date-picker-module_selected__JasbR) {
|
|
151
|
+
background-color: var(--action-hover);
|
|
152
|
+
}
|
|
153
|
+
.date-picker-module_day__3KTf0:disabled {
|
|
154
|
+
color: var(--text-disabled);
|
|
155
|
+
cursor: default;
|
|
156
|
+
opacity: 0.5;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.date-picker-module_outside__amvmk {
|
|
160
|
+
color: var(--text-disabled);
|
|
161
|
+
opacity: 0.5;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.date-picker-module_today__nBKQf {
|
|
165
|
+
border: 1.5px solid var(--primary-main);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.date-picker-module_selected__JasbR {
|
|
169
|
+
background-color: var(--secondary-main);
|
|
170
|
+
color: var(--secondary-contrast);
|
|
171
|
+
font-weight: 600;
|
|
172
|
+
}
|
|
173
|
+
.date-picker-module_selected__JasbR:hover {
|
|
174
|
+
background-color: var(--secondary-main);
|
|
175
|
+
}
|
|
@@ -3,15 +3,63 @@ import inputStyles from '../Input/input.module.scss.js';
|
|
|
3
3
|
import { Label } from '../Label/label.js';
|
|
4
4
|
import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from '../Select/select.js';
|
|
5
5
|
import { useBreakpoint } from '../../hooks/use-mobile.js';
|
|
6
|
-
import { Typography } from '../../typography/Typography/typography.js';
|
|
7
6
|
import cn from 'clsx';
|
|
8
|
-
import
|
|
7
|
+
import '../Input/input.js';
|
|
8
|
+
import '../../layout/Sidebar/sidebar-context.js';
|
|
9
9
|
import * as React from 'react';
|
|
10
|
+
import '../../ui/Alert/alert-context.js';
|
|
11
|
+
import '../../ui/Table/table-sort-context.js';
|
|
12
|
+
import '../../layout/Skeleton/skeleton.css';
|
|
13
|
+
import '../../navigation/Sheet/sheet.js';
|
|
14
|
+
import { Button } from '../../ui/Button/button.js';
|
|
15
|
+
import '../../ui/Tooltip/tooltip.js';
|
|
16
|
+
import { CalendarIcon, ChevronLeftIcon, ChevronRightIcon } from 'lucide-react';
|
|
17
|
+
import '../../internal/slot.js';
|
|
18
|
+
import '../../layout/Sidebar/sidebar-variants.js';
|
|
19
|
+
import '../../layout/Sidebar/sidebar.css';
|
|
20
|
+
import '../../layout/AppContent/app-content.css';
|
|
21
|
+
import { Row } from '../../layout/Row/row.js';
|
|
22
|
+
import '../../navigation/Link/link.js';
|
|
23
|
+
import { Typography } from '../../typography/Typography/typography.js';
|
|
24
|
+
import '../../layout/AppFooter/app-footer.css';
|
|
25
|
+
import '../../navigation/Router/router-context.js';
|
|
26
|
+
import '../../ui/Separator/separator.js';
|
|
10
27
|
import { createPortal } from 'react-dom';
|
|
28
|
+
import '../../typography/TruncatedText/truncated-text.js';
|
|
29
|
+
import '../../navigation/Breadcrumbs/breadcrumbs.css';
|
|
30
|
+
import '../../navigation/DropdownMenu/dropdown-menu.js';
|
|
31
|
+
import '../../ui/Avatar/avatar.js';
|
|
32
|
+
import '../../user/UserInfo/user-info.css';
|
|
33
|
+
import '../../navigation/NavUser/nav-user.css';
|
|
34
|
+
import '../../ui/Alert/alert.js';
|
|
35
|
+
import '../../ui/Alert/alert.css';
|
|
36
|
+
import '../../ui/Chip/chip.js';
|
|
37
|
+
import '../../ui/CodeBlock/code-block.js';
|
|
38
|
+
import '../../ui/DevIndicator/dev-indicator.css';
|
|
39
|
+
import '../../ui/Dialog/dialog.js';
|
|
40
|
+
import '../../ui/EmptyState/empty-state.js';
|
|
41
|
+
import '../../ui/Icon/icon.js';
|
|
42
|
+
import '../../ui/List/list.js';
|
|
43
|
+
import '../../ui/Pagination/pagination.js';
|
|
44
|
+
import '../../ui/ProgressBar/progress-bar.js';
|
|
45
|
+
import '../../ui/StatCard/stat-card.js';
|
|
46
|
+
import '../../ui/StatusDot/status-dot.js';
|
|
47
|
+
import '../../ui/StatusDot/status-dot-variants.js';
|
|
48
|
+
import '../../ui/StepProgress/step-progress.js';
|
|
49
|
+
import '../../ui/Switch/switch.js';
|
|
50
|
+
import '../../ui/Table/table.js';
|
|
51
|
+
import '../../ui/TableActionCell/table-action-cell.js';
|
|
52
|
+
import '../../ui/TableToolbar/table-toolbar.js';
|
|
53
|
+
import '../../ui/Toggle/toggle.js';
|
|
54
|
+
import '../../ui/ToggleGroup/toggle-group.js';
|
|
55
|
+
import '../../settings/AppearanceTabs/appearance-tabs.css';
|
|
56
|
+
import '../../layout/AppSidebarHeader/app-sidebar-header.css';
|
|
57
|
+
import '../../layout/Collapse/collapse.js';
|
|
58
|
+
import '../../layout/Column/column.css';
|
|
59
|
+
import '../../layout/Container/container.js';
|
|
60
|
+
import '../../layout/Grid/grid.js';
|
|
11
61
|
import s from './date-picker.module.scss.js';
|
|
12
62
|
import { normalizeIsoValue, formatDisplayDate, parseDateValue, useCalendar, formatIso, formatDateValue, isDateWithinRange, maskDateInput } from './use-calendar.js';
|
|
13
|
-
import { Row } from '../../layout/Row/row.js';
|
|
14
|
-
import { Button } from '../../ui/Button/button.js';
|
|
15
63
|
|
|
16
64
|
const ANIMATION_DURATION = 200;
|
|
17
65
|
function DatePicker({ value: valueProp, defaultValue, onChange, label, helperText, error = false, disabled = false, sizeVariant, placeholder, min, max, required = false, id, className, name, }) {
|