@sixthshift/design-system 0.2.1 → 0.3.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 +135 -28
- package/dist/components/Badge/Badge.d.ts +5 -2
- package/dist/components/Badge/Badge.d.ts.map +1 -1
- package/dist/components/Badge/Badge.js +5 -3
- package/dist/components/Badge/Badge.js.map +1 -1
- package/dist/components/BarChart/BarChart.d.ts +8 -2
- package/dist/components/BarChart/BarChart.d.ts.map +1 -1
- package/dist/components/BarChart/BarChart.js +5 -3
- package/dist/components/BarChart/BarChart.js.map +1 -1
- package/dist/components/Calendar/Calendar.d.ts +17 -1
- package/dist/components/Calendar/Calendar.d.ts.map +1 -1
- package/dist/components/Calendar/Calendar.js +80 -225
- package/dist/components/Calendar/Calendar.js.map +1 -1
- package/dist/components/Calendar/CalendarView.d.ts +15 -0
- package/dist/components/Calendar/CalendarView.d.ts.map +1 -0
- package/dist/components/Calendar/CalendarView.js +255 -0
- package/dist/components/Calendar/CalendarView.js.map +1 -0
- package/dist/components/Calendar/calendar.types.d.ts +78 -27
- package/dist/components/Calendar/calendar.types.d.ts.map +1 -1
- package/dist/components/Calendar/calendar.types.js +10 -3
- package/dist/components/Calendar/calendar.types.js.map +1 -1
- package/dist/components/Calendar/index.d.ts +16 -2
- package/dist/components/Calendar/index.d.ts.map +1 -1
- package/dist/components/Calendar/index.js +15 -1
- package/dist/components/Calendar/index.js.map +1 -1
- package/dist/components/ColorDot/ColorDot.d.ts +9 -3
- package/dist/components/ColorDot/ColorDot.d.ts.map +1 -1
- package/dist/components/ColorDot/ColorDot.js +5 -3
- package/dist/components/ColorDot/ColorDot.js.map +1 -1
- package/dist/components/DatePicker/DatePicker.d.ts +2 -2
- package/dist/components/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/components/DatePicker/DatePicker.js +65 -10
- package/dist/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/DatePicker/datepicker.types.d.ts +34 -36
- package/dist/components/DatePicker/datepicker.types.d.ts.map +1 -1
- package/dist/components/DatePicker/datepicker.types.js +5 -3
- package/dist/components/DatePicker/datepicker.types.js.map +1 -1
- package/dist/components/DatePicker/index.d.ts +10 -1
- package/dist/components/DatePicker/index.d.ts.map +1 -1
- package/dist/components/DatePicker/index.js +8 -0
- package/dist/components/DatePicker/index.js.map +1 -1
- package/dist/components/DateRangePicker/DateRangePicker.d.ts +3 -2
- package/dist/components/DateRangePicker/DateRangePicker.d.ts.map +1 -1
- package/dist/components/DateRangePicker/DateRangePicker.js +17 -21
- package/dist/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/dist/components/DateRangePicker/daterangepicker.types.d.ts +20 -20
- package/dist/components/DateRangePicker/daterangepicker.types.d.ts.map +1 -1
- package/dist/components/DateRangePicker/daterangepicker.types.js +6 -0
- package/dist/components/DateRangePicker/daterangepicker.types.js.map +1 -1
- package/dist/components/DateRangePicker/index.d.ts +8 -1
- package/dist/components/DateRangePicker/index.d.ts.map +1 -1
- package/dist/components/DateRangePicker/index.js +6 -0
- package/dist/components/DateRangePicker/index.js.map +1 -1
- package/dist/components/DateTimePicker/DateTimePicker.d.ts +3 -3
- package/dist/components/DateTimePicker/DateTimePicker.d.ts.map +1 -1
- package/dist/components/DateTimePicker/DateTimePicker.js +30 -12
- package/dist/components/DateTimePicker/DateTimePicker.js.map +1 -1
- package/dist/components/DateTimePicker/datetimepicker.types.d.ts +20 -17
- package/dist/components/DateTimePicker/datetimepicker.types.d.ts.map +1 -1
- package/dist/components/DateTimePicker/datetimepicker.types.js +10 -0
- package/dist/components/DateTimePicker/datetimepicker.types.js.map +1 -1
- package/dist/components/DateTimePicker/index.d.ts +8 -1
- package/dist/components/DateTimePicker/index.d.ts.map +1 -1
- package/dist/components/DateTimePicker/index.js +6 -0
- package/dist/components/DateTimePicker/index.js.map +1 -1
- package/dist/components/DateTimeRangePicker/DateTimeRangePicker.d.ts +3 -3
- package/dist/components/DateTimeRangePicker/DateTimeRangePicker.d.ts.map +1 -1
- package/dist/components/DateTimeRangePicker/DateTimeRangePicker.js +41 -20
- package/dist/components/DateTimeRangePicker/DateTimeRangePicker.js.map +1 -1
- package/dist/components/DateTimeRangePicker/datetimerangepicker.types.d.ts +22 -18
- package/dist/components/DateTimeRangePicker/datetimerangepicker.types.d.ts.map +1 -1
- package/dist/components/DateTimeRangePicker/datetimerangepicker.types.js +8 -0
- package/dist/components/DateTimeRangePicker/datetimerangepicker.types.js.map +1 -1
- package/dist/components/DateTimeRangePicker/index.d.ts +8 -0
- package/dist/components/DateTimeRangePicker/index.d.ts.map +1 -1
- package/dist/components/DateTimeRangePicker/index.js +7 -0
- package/dist/components/DateTimeRangePicker/index.js.map +1 -1
- package/dist/components/EmptyState/EmptyState.d.ts +16 -5
- package/dist/components/EmptyState/EmptyState.d.ts.map +1 -1
- package/dist/components/EmptyState/EmptyState.js +5 -3
- package/dist/components/EmptyState/EmptyState.js.map +1 -1
- package/dist/components/Field/Field.d.ts +3 -3
- package/dist/components/Field/Field.d.ts.map +1 -1
- package/dist/components/Field/Field.js +6 -4
- package/dist/components/Field/Field.js.map +1 -1
- package/dist/components/LineChart/LineChart.d.ts +18 -2
- package/dist/components/LineChart/LineChart.d.ts.map +1 -1
- package/dist/components/LineChart/LineChart.js +5 -3
- package/dist/components/LineChart/LineChart.js.map +1 -1
- package/dist/components/Markdown/Markdown.d.ts +2 -4
- package/dist/components/Markdown/Markdown.d.ts.map +1 -1
- package/dist/components/Markdown/Markdown.js +3 -2
- package/dist/components/Markdown/Markdown.js.map +1 -1
- package/dist/components/Message/Message.d.ts.map +1 -1
- package/dist/components/Message/Message.js +16 -1
- package/dist/components/Message/Message.js.map +1 -1
- package/dist/components/MetricList/MetricList.d.ts +3 -3
- package/dist/components/MetricList/MetricList.d.ts.map +1 -1
- package/dist/components/MetricList/MetricList.js +5 -3
- package/dist/components/MetricList/MetricList.js.map +1 -1
- package/dist/components/Modal/Modal.d.ts +24 -5
- package/dist/components/Modal/Modal.d.ts.map +1 -1
- package/dist/components/Modal/Modal.js +16 -6
- package/dist/components/Modal/Modal.js.map +1 -1
- package/dist/components/Modal/components/ModalContext.d.ts +14 -0
- package/dist/components/Modal/components/ModalContext.d.ts.map +1 -1
- package/dist/components/Modal/components/ModalContext.js.map +1 -1
- package/dist/components/Modal/components/ModalHeader.d.ts.map +1 -1
- package/dist/components/Modal/components/ModalHeader.js +13 -2
- package/dist/components/Modal/components/ModalHeader.js.map +1 -1
- package/dist/components/NavBottom/NavBottom.d.ts +2 -1
- package/dist/components/NavBottom/NavBottom.d.ts.map +1 -1
- package/dist/components/NavBottom/NavBottom.js +6 -4
- package/dist/components/NavBottom/NavBottom.js.map +1 -1
- package/dist/components/NavSide/NavItem.js +1 -1
- package/dist/components/NavSide/NavItem.js.map +1 -1
- package/dist/components/NavSide/NavSide.d.ts +2 -1
- package/dist/components/NavSide/NavSide.d.ts.map +1 -1
- package/dist/components/NavSide/NavSide.js +5 -3
- package/dist/components/NavSide/NavSide.js.map +1 -1
- package/dist/components/Popover/Popover.d.ts.map +1 -1
- package/dist/components/Popover/Popover.js +7 -0
- package/dist/components/Popover/Popover.js.map +1 -1
- package/dist/components/Popover/components/PopoverBody.d.ts.map +1 -1
- package/dist/components/Popover/components/PopoverBody.js +5 -2
- package/dist/components/Popover/components/PopoverBody.js.map +1 -1
- package/dist/components/Popover/components/PopoverContext.d.ts +1 -0
- package/dist/components/Popover/components/PopoverContext.d.ts.map +1 -1
- package/dist/components/Popover/components/PopoverContext.js.map +1 -1
- package/dist/components/Popover/components/PopoverTrigger.d.ts.map +1 -1
- package/dist/components/Popover/components/PopoverTrigger.js +2 -2
- package/dist/components/Popover/components/PopoverTrigger.js.map +1 -1
- package/dist/components/ProgressBar/ProgressBar.d.ts +2 -1
- package/dist/components/ProgressBar/ProgressBar.d.ts.map +1 -1
- package/dist/components/ProgressBar/ProgressBar.js +5 -3
- package/dist/components/ProgressBar/ProgressBar.js.map +1 -1
- package/dist/components/Select/Select.d.ts +11 -2
- package/dist/components/Select/Select.d.ts.map +1 -1
- package/dist/components/Select/Select.js +64 -18
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/Select/SelectDropdown.d.ts +14 -2
- package/dist/components/Select/SelectDropdown.d.ts.map +1 -1
- package/dist/components/Select/SelectDropdown.js +19 -4
- package/dist/components/Select/SelectDropdown.js.map +1 -1
- package/dist/components/Select/SelectTrigger.d.ts +10 -3
- package/dist/components/Select/SelectTrigger.d.ts.map +1 -1
- package/dist/components/Select/SelectTrigger.js +12 -3
- package/dist/components/Select/SelectTrigger.js.map +1 -1
- package/dist/components/Select/useSelectKeyboard.d.ts +15 -1
- package/dist/components/Select/useSelectKeyboard.d.ts.map +1 -1
- package/dist/components/Select/useSelectKeyboard.js +73 -65
- package/dist/components/Select/useSelectKeyboard.js.map +1 -1
- package/dist/components/Sheet/Sheet.d.ts +19 -5
- package/dist/components/Sheet/Sheet.d.ts.map +1 -1
- package/dist/components/Sheet/Sheet.js +18 -6
- package/dist/components/Sheet/Sheet.js.map +1 -1
- package/dist/components/Sheet/components/SheetContext.d.ts +10 -0
- package/dist/components/Sheet/components/SheetContext.d.ts.map +1 -1
- package/dist/components/Sheet/components/SheetContext.js.map +1 -1
- package/dist/components/Sheet/components/SheetHeader.d.ts.map +1 -1
- package/dist/components/Sheet/components/SheetHeader.js +11 -2
- package/dist/components/Sheet/components/SheetHeader.js.map +1 -1
- package/dist/components/Skeleton/Skeleton.d.ts +2 -1
- package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/components/Skeleton/Skeleton.js +5 -3
- package/dist/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/Sparkline/Sparkline.d.ts +10 -2
- package/dist/components/Sparkline/Sparkline.d.ts.map +1 -1
- package/dist/components/Sparkline/Sparkline.js +5 -3
- package/dist/components/Sparkline/Sparkline.js.map +1 -1
- package/dist/components/StatsCard/StatsCard.d.ts +4 -4
- package/dist/components/StatsCard/StatsCard.d.ts.map +1 -1
- package/dist/components/StatsCard/StatsCard.js +5 -3
- package/dist/components/StatsCard/StatsCard.js.map +1 -1
- package/dist/components/Tabs/Tabs.d.ts +2 -2
- package/dist/components/Tabs/components/TabsList.d.ts +1 -1
- package/dist/components/Tabs/components/TabsList.d.ts.map +1 -1
- package/dist/components/Tabs/components/TabsList.js +5 -4
- package/dist/components/Tabs/components/TabsList.js.map +1 -1
- package/dist/components/Tabs/components/TabsPanels.d.ts +1 -1
- package/dist/components/Tabs/components/TabsPanels.d.ts.map +1 -1
- package/dist/components/Tabs/components/TabsPanels.js +5 -3
- package/dist/components/Tabs/components/TabsPanels.js.map +1 -1
- package/dist/components/TagChip/TagChip.d.ts +2 -1
- package/dist/components/TagChip/TagChip.d.ts.map +1 -1
- package/dist/components/TagChip/TagChip.js +5 -3
- package/dist/components/TagChip/TagChip.js.map +1 -1
- package/dist/components/TagInput/TagInput.d.ts +1 -1
- package/dist/components/TagInput/TagInput.d.ts.map +1 -1
- package/dist/components/TagInput/TagInput.js +5 -4
- package/dist/components/TagInput/TagInput.js.map +1 -1
- package/dist/components/TimePicker/TimePicker.d.ts +2 -2
- package/dist/components/TimePicker/TimePicker.d.ts.map +1 -1
- package/dist/components/TimePicker/TimePicker.js +27 -11
- package/dist/components/TimePicker/TimePicker.js.map +1 -1
- package/dist/components/TimePicker/timepicker.types.d.ts +14 -13
- package/dist/components/TimePicker/timepicker.types.d.ts.map +1 -1
- package/dist/components/TimePicker/timepicker.types.js +4 -3
- package/dist/components/TimePicker/timepicker.types.js.map +1 -1
- package/dist/date-time/index.d.ts +2 -0
- package/dist/date-time/index.d.ts.map +1 -1
- package/dist/date-time/index.js +9 -0
- package/dist/date-time/index.js.map +1 -1
- package/dist/date-time/iso.d.ts +261 -0
- package/dist/date-time/iso.d.ts.map +1 -0
- package/dist/date-time/iso.js +358 -0
- package/dist/date-time/iso.js.map +1 -0
- package/dist/date-time/now.d.ts +7 -6
- package/dist/date-time/now.d.ts.map +1 -1
- package/dist/date-time/now.js +3 -3
- package/dist/date-time/now.js.map +1 -1
- package/dist/theme/index.d.ts +4 -3
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +3 -2
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/schema.d.ts +70 -32
- package/dist/theme/schema.d.ts.map +1 -1
- package/dist/theme/schema.js +36 -18
- package/dist/theme/schema.js.map +1 -1
- package/package.json +9 -15
- package/src/components/Badge/Badge.tsx +5 -4
- package/src/components/BarChart/BarChart.tsx +25 -30
- package/src/components/Calendar/Calendar.tsx +91 -401
- package/src/components/Calendar/CalendarView.tsx +445 -0
- package/src/components/Calendar/calendar.types.ts +94 -29
- package/src/components/Calendar/index.ts +16 -17
- package/src/components/ColorDot/ColorDot.tsx +6 -4
- package/src/components/DatePicker/DatePicker.tsx +92 -16
- package/src/components/DatePicker/datepicker.types.ts +38 -39
- package/src/components/DatePicker/index.ts +11 -10
- package/src/components/DateRangePicker/DateRangePicker.tsx +17 -21
- package/src/components/DateRangePicker/daterangepicker.types.ts +22 -22
- package/src/components/DateRangePicker/index.ts +9 -1
- package/src/components/DateTimePicker/DateTimePicker.tsx +46 -18
- package/src/components/DateTimePicker/datetimepicker.types.ts +22 -18
- package/src/components/DateTimePicker/index.ts +9 -1
- package/src/components/DateTimeRangePicker/DateTimeRangePicker.tsx +62 -28
- package/src/components/DateTimeRangePicker/datetimerangepicker.types.ts +24 -19
- package/src/components/DateTimeRangePicker/index.ts +9 -0
- package/src/components/EmptyState/EmptyState.tsx +8 -7
- package/src/components/Field/Field.tsx +7 -6
- package/src/components/LineChart/LineChart.tsx +147 -141
- package/src/components/Markdown/Markdown.tsx +4 -3
- package/src/components/Message/Message.tsx +17 -1
- package/src/components/MetricList/MetricList.tsx +10 -5
- package/src/components/Modal/Modal.tsx +119 -87
- package/src/components/Modal/components/ModalContext.tsx +14 -0
- package/src/components/Modal/components/ModalHeader.tsx +14 -2
- package/src/components/NavBottom/NavBottom.tsx +6 -4
- package/src/components/NavSide/NavItem.tsx +1 -1
- package/src/components/NavSide/NavSide.tsx +5 -3
- package/src/components/Popover/Popover.tsx +7 -0
- package/src/components/Popover/components/PopoverBody.tsx +6 -1
- package/src/components/Popover/components/PopoverContext.tsx +1 -0
- package/src/components/Popover/components/PopoverTrigger.tsx +2 -1
- package/src/components/ProgressBar/ProgressBar.tsx +32 -28
- package/src/components/Select/Select.tsx +76 -19
- package/src/components/Select/SelectDropdown.tsx +32 -3
- package/src/components/Select/SelectTrigger.tsx +26 -3
- package/src/components/Select/useSelectKeyboard.ts +20 -10
- package/src/components/Sheet/Sheet.tsx +108 -83
- package/src/components/Sheet/components/SheetContext.tsx +10 -0
- package/src/components/Sheet/components/SheetHeader.tsx +17 -2
- package/src/components/Skeleton/Skeleton.tsx +5 -3
- package/src/components/Sparkline/Sparkline.tsx +29 -36
- package/src/components/StatsCard/StatsCard.tsx +7 -6
- package/src/components/Tabs/components/TabsList.tsx +5 -3
- package/src/components/Tabs/components/TabsPanels.tsx +5 -3
- package/src/components/TagChip/TagChip.tsx +10 -3
- package/src/components/TagInput/TagInput.tsx +5 -3
- package/src/components/TimePicker/TimePicker.tsx +31 -13
- package/src/components/TimePicker/timepicker.types.ts +14 -13
- package/src/date-time/index.ts +61 -0
- package/src/date-time/iso.ts +511 -0
- package/src/date-time/now.ts +10 -9
- package/src/theme/index.ts +11 -3
- package/src/theme/schema.ts +82 -54
- package/src/theme/tokens.css +807 -0
- package/dist/styles.css +0 -2
- package/dist/theme.generated.css +0 -438
- package/src/styles/base.css +0 -41
- package/src/theme/palette.json +0 -100
- package/src/theme/palette.schema.json +0 -40
- package/src/theme/theme.json +0 -349
- package/src/theme/theme.schema.json +0 -876
- package/src/theme/typography.json +0 -7
- package/src/theme/typography.schema.json +0 -36
- package/tailwind.config.ts +0 -261
package/src/theme/schema.ts
CHANGED
|
@@ -1,25 +1,46 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Theme Schema
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* The naming convention for design tokens, as types and as data:
|
|
5
|
+
*
|
|
6
|
+
* {context}-[on-]{intent}[-{weight}][-{state}]
|
|
7
|
+
*
|
|
8
|
+
* src/theme/tokens.css is the only place tokens are defined, and nothing derives
|
|
9
|
+
* TypeScript from it. These types describe the *shape* a token name can take
|
|
10
|
+
* rather than enumerating the names that happen to exist today, which is why the
|
|
11
|
+
* vocabulary below is the thing to edit when the system grows a new axis.
|
|
12
|
+
*
|
|
13
|
+
* The trade that makes explicit: the union is complete but permissive. Every real
|
|
14
|
+
* token is assignable, and a few combinations it accepts are not defined. Keeping
|
|
15
|
+
* this vocabulary and tokens.css describing the same system is a manual job — a
|
|
16
|
+
* token whose name falls outside the grid below is unnameable in TypeScript even
|
|
17
|
+
* though its utility compiles.
|
|
18
|
+
*
|
|
19
|
+
* To read a value, read the CSS: `var(--bg-brand)` in a stylesheet, or
|
|
20
|
+
* `getComputedStyle(document.documentElement).getPropertyValue("--bg-brand")`
|
|
21
|
+
* at runtime.
|
|
6
22
|
*/
|
|
7
23
|
|
|
8
24
|
// =============================================================================
|
|
9
25
|
// PRIMITIVES
|
|
10
26
|
// =============================================================================
|
|
11
27
|
|
|
12
|
-
/** HSL color value without wrapper, e.g., "239 84% 67%" */
|
|
13
|
-
export type HSLValue = string;
|
|
14
|
-
|
|
15
28
|
/** Hex color value, e.g., "#6366f1" */
|
|
16
29
|
export type HexValue = string;
|
|
17
30
|
|
|
31
|
+
/**
|
|
32
|
+
* HSL color value without wrapper, e.g., "239 84% 67%"
|
|
33
|
+
*
|
|
34
|
+
* @deprecated Tokens hold hex values and palette references, never bare HSL
|
|
35
|
+
* triples. Kept only so the export surface stays stable.
|
|
36
|
+
*/
|
|
37
|
+
export type HSLValue = string;
|
|
38
|
+
|
|
18
39
|
/** Color mode */
|
|
19
40
|
export type ColorMode = "light" | "dark";
|
|
20
41
|
|
|
21
42
|
// =============================================================================
|
|
22
|
-
//
|
|
43
|
+
// VOCABULARY
|
|
23
44
|
// =============================================================================
|
|
24
45
|
|
|
25
46
|
/** Contexts - what CSS property this affects */
|
|
@@ -38,49 +59,71 @@ export type Feedback = (typeof feedback)[number];
|
|
|
38
59
|
export const semantics = [...hierarchy, ...feedback] as const;
|
|
39
60
|
export type Semantic = (typeof semantics)[number];
|
|
40
61
|
|
|
62
|
+
/** Every intent a token can carry, including the ones outside the grid above */
|
|
63
|
+
export const intents = [...semantics, "brand", "overlay"] as const;
|
|
64
|
+
export type Intent = (typeof intents)[number];
|
|
65
|
+
|
|
66
|
+
/** Weight modifiers, applied to brand and feedback intents */
|
|
67
|
+
export const weights = ["subtle", "strong"] as const;
|
|
68
|
+
export type Weight = (typeof weights)[number];
|
|
69
|
+
|
|
70
|
+
/** Interaction states */
|
|
71
|
+
export const states = ["hovered", "pressed", "disabled"] as const;
|
|
72
|
+
export type State = (typeof states)[number];
|
|
73
|
+
|
|
74
|
+
/** Tokens that are a category of one, outside the grid */
|
|
75
|
+
export const standaloneTokens = ["focus-ring"] as const;
|
|
76
|
+
export type StandaloneToken = (typeof standaloneTokens)[number];
|
|
77
|
+
|
|
41
78
|
// =============================================================================
|
|
42
|
-
// TOKEN NAMES
|
|
79
|
+
// TOKEN NAMES
|
|
43
80
|
// =============================================================================
|
|
44
81
|
|
|
45
|
-
/**
|
|
46
|
-
|
|
82
|
+
/** Intents that take a weight modifier — the hierarchy trio *is* the weight. */
|
|
83
|
+
type Weightable = Exclude<Intent, Hierarchy>;
|
|
84
|
+
|
|
85
|
+
/** `brand` | `brand-subtle` | `danger-strong` | ... */
|
|
86
|
+
type WeightedIntent = Intent | `${Weightable}-${Weight}`;
|
|
47
87
|
|
|
48
|
-
/**
|
|
49
|
-
|
|
88
|
+
/** Any of the above, optionally in an interaction state */
|
|
89
|
+
type Stateful<T extends string> = T | `${T}-${State}`;
|
|
50
90
|
|
|
51
|
-
/**
|
|
52
|
-
export type
|
|
91
|
+
/** Background tokens */
|
|
92
|
+
export type BgToken = Stateful<`bg-${WeightedIntent}`>;
|
|
93
|
+
|
|
94
|
+
/** Foreground tokens, including the `fg-on-*` pairs */
|
|
95
|
+
export type FgToken = Stateful<`fg-${WeightedIntent}`> | Stateful<`fg-on-${WeightedIntent}`>;
|
|
96
|
+
|
|
97
|
+
/** Border tokens */
|
|
98
|
+
export type BorderToken = Stateful<`border-${WeightedIntent}`>;
|
|
99
|
+
|
|
100
|
+
/** Every token name the convention allows */
|
|
101
|
+
export type TokenName = BgToken | FgToken | BorderToken | StandaloneToken;
|
|
53
102
|
|
|
54
103
|
/** All color tokens */
|
|
55
|
-
export type ColorToken =
|
|
104
|
+
export type ColorToken = TokenName;
|
|
56
105
|
|
|
57
106
|
/** CSS variable name format */
|
|
58
107
|
export type CSSVarName = `--${ColorToken}`;
|
|
59
108
|
|
|
109
|
+
/** @deprecated Use {@link BgToken}. */
|
|
110
|
+
export type BgKey = BgToken;
|
|
111
|
+
/** @deprecated Use {@link FgToken}. */
|
|
112
|
+
export type FgKey = FgToken;
|
|
113
|
+
/** @deprecated Use {@link BorderToken}. */
|
|
114
|
+
export type BorderKey = BorderToken;
|
|
115
|
+
/** @deprecated Use {@link TokenName}. */
|
|
116
|
+
export type TokenKey = TokenName;
|
|
117
|
+
|
|
60
118
|
// =============================================================================
|
|
61
|
-
// THEME
|
|
119
|
+
// THEME SHAPE
|
|
62
120
|
// =============================================================================
|
|
63
121
|
|
|
64
|
-
/**
|
|
65
|
-
export type
|
|
66
|
-
|
|
67
|
-
/** Foreground token keys */
|
|
68
|
-
export type FgKey = `fg-${Semantic}` | `fg-on-${Semantic}`;
|
|
69
|
-
|
|
70
|
-
/** Border token keys */
|
|
71
|
-
export type BorderKey = `border-${Semantic}`;
|
|
72
|
-
|
|
73
|
-
/** All token keys */
|
|
74
|
-
export type TokenKey = BgKey | FgKey | BorderKey;
|
|
75
|
-
|
|
76
|
-
/** Color mode schema (light or dark) - flat structure */
|
|
77
|
-
export type ColorModeSchema = {
|
|
78
|
-
[K in TokenKey]: HexValue;
|
|
79
|
-
};
|
|
122
|
+
/** A set of token values for one mode */
|
|
123
|
+
export type ColorModeSchema = Partial<Record<TokenName, HexValue>>;
|
|
80
124
|
|
|
81
|
-
/**
|
|
125
|
+
/** A complete theme */
|
|
82
126
|
export type ThemeSchema = {
|
|
83
|
-
$schema?: string;
|
|
84
127
|
name: string;
|
|
85
128
|
version: string;
|
|
86
129
|
light: ColorModeSchema;
|
|
@@ -91,32 +134,17 @@ export type ThemeSchema = {
|
|
|
91
134
|
// UTILITIES
|
|
92
135
|
// =============================================================================
|
|
93
136
|
|
|
94
|
-
/** Get all token names for a context */
|
|
95
|
-
export function getTokenNames(context: "bg"): BgToken[];
|
|
96
|
-
export function getTokenNames(context: "fg"): FgToken[];
|
|
97
|
-
export function getTokenNames(context: "border"): BorderToken[];
|
|
98
|
-
export function getTokenNames(context: Context): ColorToken[] {
|
|
99
|
-
switch (context) {
|
|
100
|
-
case "bg":
|
|
101
|
-
return semantics.map((s) => `bg-${s}` as BgToken);
|
|
102
|
-
case "fg":
|
|
103
|
-
return [...semantics.map((s) => `fg-${s}` as FgToken), ...semantics.map((s) => `fg-on-${s}` as FgToken)];
|
|
104
|
-
case "border":
|
|
105
|
-
return semantics.map((s) => `border-${s}` as BorderToken);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/** Get all token names */
|
|
110
|
-
export function getAllTokenNames(): ColorToken[] {
|
|
111
|
-
return [...getTokenNames("bg"), ...getTokenNames("fg"), ...getTokenNames("border")];
|
|
112
|
-
}
|
|
113
|
-
|
|
114
137
|
/** Type-safe CSS var reference */
|
|
115
138
|
export function cssVar(token: ColorToken): string {
|
|
116
139
|
return `var(--${token})`;
|
|
117
140
|
}
|
|
118
141
|
|
|
119
|
-
/**
|
|
142
|
+
/**
|
|
143
|
+
* Type-safe HSL wrapper for Tailwind
|
|
144
|
+
*
|
|
145
|
+
* @deprecated Token values are hex and palette references, so wrapping one in
|
|
146
|
+
* `hsl()` yields invalid CSS. Use {@link cssVar}.
|
|
147
|
+
*/
|
|
120
148
|
export function hsl(token: ColorToken): string {
|
|
121
149
|
return `hsl(var(--${token}))`;
|
|
122
150
|
}
|