@a-type/ui 5.0.8 → 5.0.9
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/dist/css/main.css +7 -7
- package/dist/esm/components/button/Button.js +1 -1
- package/dist/esm/components/button/Button.js.map +1 -1
- package/dist/esm/components/button/classes.js +2 -2
- package/dist/esm/components/button/classes.js.map +1 -1
- package/dist/esm/components/camera/Camera.js +1 -1
- package/dist/esm/components/camera/Camera.js.map +1 -1
- package/dist/esm/components/card/Card.js +3 -3
- package/dist/esm/components/card/Card.js.map +1 -1
- package/dist/esm/components/checkbox/Checkbox.js +2 -2
- package/dist/esm/components/checkbox/Checkbox.js.map +1 -1
- package/dist/esm/components/datePicker/Calendar.js +1 -1
- package/dist/esm/components/datePicker/Calendar.js.map +1 -1
- package/dist/esm/components/datePicker/DateRangePicker.js +1 -1
- package/dist/esm/components/datePicker/DateRangePicker.js.map +1 -1
- package/dist/esm/components/editableText/EditableText.js +1 -1
- package/dist/esm/components/editableText/EditableText.js.map +1 -1
- package/dist/esm/components/horizontalList/HorizontalList.js +2 -2
- package/dist/esm/components/horizontalList/HorizontalList.js.map +1 -1
- package/dist/esm/components/input/Input.js +1 -1
- package/dist/esm/components/input/Input.js.map +1 -1
- package/dist/esm/components/lightbox/Lightbox.js +1 -1
- package/dist/esm/components/lightbox/Lightbox.js.map +1 -1
- package/dist/esm/components/navBar/NavBar.js +5 -5
- package/dist/esm/components/navBar/NavBar.js.map +1 -1
- package/dist/esm/components/note/Note.js +1 -1
- package/dist/esm/components/note/Note.js.map +1 -1
- package/dist/esm/components/primitives/menus.js +1 -1
- package/dist/esm/components/primitives/menus.js.map +1 -1
- package/dist/esm/components/progress/Progress.js +5 -5
- package/dist/esm/components/progress/Progress.js.map +1 -1
- package/dist/esm/components/provider/Provider.d.ts +2 -1
- package/dist/esm/components/provider/Provider.js +3 -2
- package/dist/esm/components/provider/Provider.js.map +1 -1
- package/dist/esm/components/provider/TweakPane.d.ts +1 -0
- package/dist/esm/components/provider/TweakPane.js +36 -0
- package/dist/esm/components/provider/TweakPane.js.map +1 -0
- package/dist/esm/components/scrollArea/ScrollArea.js +5 -5
- package/dist/esm/components/scrollArea/ScrollArea.js.map +1 -1
- package/dist/esm/components/slider/Slider.d.ts +1 -0
- package/dist/esm/components/slider/Slider.js +9 -4
- package/dist/esm/components/slider/Slider.js.map +1 -1
- package/dist/esm/components/slider/Slider.stories.d.ts +1 -0
- package/dist/esm/components/switch/Switch.js +2 -2
- package/dist/esm/components/switch/Switch.js.map +1 -1
- package/dist/esm/components/tabs/tabs.js +1 -1
- package/dist/esm/components/tabs/tabs.js.map +1 -1
- package/dist/esm/components/toggleGroup/toggleGroup.js +1 -1
- package/dist/esm/components/toggleGroup/toggleGroup.js.map +1 -1
- package/dist/esm/components/viewport/Viewport.js +1 -1
- package/dist/esm/components/viewport/Viewport.js.map +1 -1
- package/dist/esm/hooks/useVisualViewportOffset.d.ts +2 -2
- package/dist/esm/hooks/useVisualViewportOffset.js +15 -9
- package/dist/esm/hooks/useVisualViewportOffset.js.map +1 -1
- package/dist/esm/themes.stories.js +2 -2
- package/dist/esm/themes.stories.js.map +1 -1
- package/dist/esm/uno/logic/properties.d.ts +6 -0
- package/dist/esm/uno/logic/properties.js +6 -0
- package/dist/esm/uno/logic/properties.js.map +1 -1
- package/dist/esm/uno/preflights/user.d.ts +2 -1
- package/dist/esm/uno/preflights/user.js +8 -1
- package/dist/esm/uno/preflights/user.js.map +1 -1
- package/dist/esm/uno/rules/focus.d.ts +3 -0
- package/dist/esm/uno/rules/focus.js +43 -0
- package/dist/esm/uno/rules/focus.js.map +1 -0
- package/dist/esm/uno/rules/index.d.ts +1 -1
- package/dist/esm/uno/rules/index.js +2 -0
- package/dist/esm/uno/rules/index.js.map +1 -1
- package/dist/esm/uno/theme/colors.d.ts +1 -1
- package/dist/esm/uno/theme/colors.js +3 -3
- package/dist/esm/uno/theme/colors.js.map +1 -1
- package/package.json +1 -1
- package/src/__screenshots__/themes.snapshots.tsx/snapshot-chromium-win32.png +0 -0
- package/src/components/button/Button.tsx +1 -1
- package/src/components/button/classes.tsx +3 -4
- package/src/components/camera/Camera.tsx +5 -5
- package/src/components/card/Card.tsx +6 -6
- package/src/components/checkbox/Checkbox.tsx +2 -2
- package/src/components/datePicker/Calendar.tsx +2 -2
- package/src/components/datePicker/DateRangePicker.tsx +3 -3
- package/src/components/editableText/EditableText.tsx +2 -1
- package/src/components/horizontalList/HorizontalList.tsx +2 -1
- package/src/components/input/Input.tsx +2 -2
- package/src/components/lightbox/Lightbox.tsx +1 -1
- package/src/components/navBar/NavBar.tsx +101 -101
- package/src/components/note/Note.tsx +3 -3
- package/src/components/primitives/menus.tsx +1 -1
- package/src/components/progress/Progress.tsx +101 -101
- package/src/components/provider/Provider.tsx +4 -0
- package/src/components/provider/TweakPane.tsx +139 -0
- package/src/components/scrollArea/ScrollArea.tsx +15 -15
- package/src/components/slider/Slider.tsx +103 -97
- package/src/components/switch/Switch.tsx +38 -38
- package/src/components/tabs/tabs.tsx +2 -1
- package/src/components/toggleGroup/toggleGroup.tsx +1 -1
- package/src/components/viewport/Viewport.tsx +1 -1
- package/src/hooks/useVisualViewportOffset.ts +15 -13
- package/src/themes.stories.tsx +2 -0
- package/src/uno/logic/properties.ts +6 -0
- package/src/uno/preflights/user.ts +13 -0
- package/src/uno/rules/focus.ts +46 -0
- package/src/uno/rules/index.ts +2 -0
- package/src/uno/theme/colors.ts +7 -3
|
@@ -14,5 +14,6 @@ export interface UserPreflightOptions {
|
|
|
14
14
|
cornerScale?: number;
|
|
15
15
|
shadowSpread?: number;
|
|
16
16
|
fontSize?: number;
|
|
17
|
+
focusColor?: 'black' | 'primary' | 'accent' | 'gray';
|
|
17
18
|
}
|
|
18
|
-
export declare const userPreflight: ({ saturation, primaryHue, accentHue, spacingScale, borderScale, cornerScale, shadowSpread, namedHues, fontSize, }: UserPreflightOptions) => import("unocss").Preflight<object>;
|
|
19
|
+
export declare const userPreflight: ({ saturation, primaryHue, accentHue, spacingScale, borderScale, cornerScale, shadowSpread, namedHues, fontSize, focusColor, }: UserPreflightOptions) => import("unocss").Preflight<object>;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { defaultPresetHues } from '../defaults.js';
|
|
3
3
|
import { PROPS } from '../logic/properties.js';
|
|
4
4
|
import { preflight } from './_util.js';
|
|
5
|
-
export const userPreflight = ({ saturation = 50, primaryHue = defaultPresetHues.lemon.sourceHue, accentHue = defaultPresetHues.leek.sourceHue, spacingScale = 1, borderScale = 1, cornerScale = 1, shadowSpread = 1, namedHues, fontSize = 16, }) => preflight({
|
|
5
|
+
export const userPreflight = ({ saturation = 50, primaryHue = defaultPresetHues.lemon.sourceHue, accentHue = defaultPresetHues.leek.sourceHue, spacingScale = 1, borderScale = 1, cornerScale = 1, shadowSpread = 1, namedHues, fontSize = 16, focusColor = 'accent', }) => preflight({
|
|
6
6
|
getCSS: () => {
|
|
7
7
|
return `
|
|
8
8
|
@layer preflightBase {
|
|
@@ -15,6 +15,7 @@ export const userPreflight = ({ saturation = 50, primaryHue = defaultPresetHues.
|
|
|
15
15
|
|
|
16
16
|
${PROPS.USER.COLOR.PRIMARY_HUE}: ${primaryHue};
|
|
17
17
|
${PROPS.USER.COLOR.ACCENT_HUE}: ${accentHue};
|
|
18
|
+
${PROPS.USER.FOCUS_COLOR}: var(${focusColors[focusColor]});
|
|
18
19
|
${namedHues
|
|
19
20
|
? Object.entries(namedHues)
|
|
20
21
|
.flatMap(([name, config]) => [
|
|
@@ -32,4 +33,10 @@ export const userPreflight = ({ saturation = 50, primaryHue = defaultPresetHues.
|
|
|
32
33
|
`;
|
|
33
34
|
},
|
|
34
35
|
});
|
|
36
|
+
const focusColors = {
|
|
37
|
+
black: PROPS.MODE.BLACK,
|
|
38
|
+
primary: PROPS.PALETTE.NAMED_SHADES('primary').DARK,
|
|
39
|
+
accent: PROPS.PALETTE.NAMED_SHADES('accent').MID,
|
|
40
|
+
gray: PROPS.PALETTE.GRAY_SHADES.DARK,
|
|
41
|
+
};
|
|
35
42
|
//# sourceMappingURL=user.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../src/uno/preflights/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../src/uno/preflights/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAqBvC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC7B,UAAU,GAAG,EAAE,EACf,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,SAAS,EAC9C,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAC5C,YAAY,GAAG,CAAC,EAChB,WAAW,GAAG,CAAC,EACf,WAAW,GAAG,CAAC,EACf,YAAY,GAAG,CAAC,EAChB,SAAS,EACT,QAAQ,GAAG,EAAE,EACb,UAAU,GAAG,QAAQ,GACC,EAAE,EAAE,CAC1B,SAAS,CAAC;IACT,MAAM,EAAE,GAAG,EAAE;QACZ,OAAO;;;IAGN,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,UAAU,GAAG,GAAG;IAC1C,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,WAAW;IACvC,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,YAAY;IACzC,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,WAAW;IACvC,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,YAAY;;IAEzC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,UAAU;IAC3C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS;IACzC,KAAK,CAAC,IAAI,CAAC,WAAW,SAAS,WAAW,CAAC,UAAU,CAAC;IAEvD,SAAS;YACR,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;iBACxB,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;gBAC5B,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,SAAS,GAAG;gBAC3D,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KACzC,MAAM,CAAC,SACR,GAAG;aACH,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC;YACb,CAAC,CAAC,EACJ;;;;eAIa,QAAQ;;;CAGtB,CAAC;IACA,CAAC;CACD,CAAC,CAAC;AAEJ,MAAM,WAAW,GAGb;IACH,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;IACvB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI;IACnD,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG;IAChD,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI;CACpC,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// @unocss-include
|
|
2
|
+
import { PROPS } from '../logic/properties.js';
|
|
3
|
+
export const focusRules = [
|
|
4
|
+
[
|
|
5
|
+
/^foc(?:-effect)?(-lg)?$/,
|
|
6
|
+
function* ([, size], { symbols }) {
|
|
7
|
+
yield {
|
|
8
|
+
[symbols.selector]: (selector) => `${selector}:focus-visible:not([data-focus-clicked]), ${selector}[data-focus-visible]`,
|
|
9
|
+
[PROPS.BUILT_IN.RING_COLOR]: `var(${PROPS.USER.FOCUS_COLOR})`,
|
|
10
|
+
[PROPS.BUILT_IN.RING_WIDTH]: size === '-lg' ? '4px' : '2px',
|
|
11
|
+
[PROPS.BUILT_IN.RING_STYLE]: 'solid',
|
|
12
|
+
[PROPS.BUILT_IN
|
|
13
|
+
.RING_SHADOW]: `var(${PROPS.BUILT_IN.RING_INSET}) 0 0 0 var(${PROPS.BUILT_IN.RING_WIDTH}) var(${PROPS.BUILT_IN.RING_COLOR})`,
|
|
14
|
+
outline: 'none',
|
|
15
|
+
'box-shadow': `var(${PROPS.BUILT_IN.RING_OFFSET_SHADOW}), var(${PROPS.BUILT_IN.RING_SHADOW}), var(${PROPS.BUILT_IN.SHADOW})`,
|
|
16
|
+
};
|
|
17
|
+
yield {
|
|
18
|
+
[symbols.selector]: (selector) => `${selector}:focus`,
|
|
19
|
+
outline: 'none',
|
|
20
|
+
};
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
[
|
|
24
|
+
/^foc-contained(-lg)?$/,
|
|
25
|
+
function* ([, size], { symbols }) {
|
|
26
|
+
yield {
|
|
27
|
+
[symbols.selector]: (selector) => `${selector}:has(:focus-visible:not([data-focus-clicked])), ${selector}:has([data-focus-visible])`,
|
|
28
|
+
[PROPS.BUILT_IN.RING_COLOR]: `var(${PROPS.USER.FOCUS_COLOR})`,
|
|
29
|
+
[PROPS.BUILT_IN.RING_WIDTH]: size === '-lg' ? '4px' : '2px',
|
|
30
|
+
[PROPS.BUILT_IN.RING_STYLE]: 'solid',
|
|
31
|
+
[PROPS.BUILT_IN
|
|
32
|
+
.RING_SHADOW]: `0 0 0 var(${PROPS.BUILT_IN.RING_WIDTH}) var(${PROPS.BUILT_IN.RING_COLOR})`,
|
|
33
|
+
outline: 'none',
|
|
34
|
+
'box-shadow': `var(${PROPS.BUILT_IN.RING_OFFSET_SHADOW}), var(${PROPS.BUILT_IN.RING_SHADOW})`,
|
|
35
|
+
};
|
|
36
|
+
yield {
|
|
37
|
+
[symbols.selector]: (selector) => `${selector}>*:focus`,
|
|
38
|
+
outline: 'none',
|
|
39
|
+
};
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
];
|
|
43
|
+
//# sourceMappingURL=focus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus.js","sourceRoot":"","sources":["../../../../src/uno/rules/focus.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE/C,MAAM,CAAC,MAAM,UAAU,GAAkB;IACxC;QACC,yBAAyB;QACzB,QAAQ,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE;YAC/B,MAAM;gBACL,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAChC,GAAG,QAAQ,6CAA6C,QAAQ,sBAAsB;gBACvF,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG;gBAC7D,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;gBAC3D,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO;gBACpC,CAAC,KAAK,CAAC,QAAQ;qBACb,WAAW,CAAC,EAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,UAAU,eAAe,KAAK,CAAC,QAAQ,CAAC,UAAU,SAAS,KAAK,CAAC,QAAQ,CAAC,UAAU,GAAG;gBAC7H,OAAO,EAAE,MAAM;gBACf,YAAY,EAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,kBAAkB,UAAU,KAAK,CAAC,QAAQ,CAAC,WAAW,UAAU,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG;aAC5H,CAAC;YACF,MAAM;gBACL,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,QAAQ,QAAQ;gBACrD,OAAO,EAAE,MAAM;aACf,CAAC;QACH,CAAC;KACD;IACD;QACC,uBAAuB;QACvB,QAAQ,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE;YAC/B,MAAM;gBACL,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAChC,GAAG,QAAQ,mDAAmD,QAAQ,4BAA4B;gBACnG,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG;gBAC7D,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;gBAC3D,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO;gBACpC,CAAC,KAAK,CAAC,QAAQ;qBACb,WAAW,CAAC,EAAE,aAAa,KAAK,CAAC,QAAQ,CAAC,UAAU,SAAS,KAAK,CAAC,QAAQ,CAAC,UAAU,GAAG;gBAC3F,OAAO,EAAE,MAAM;gBACf,YAAY,EAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,kBAAkB,UAAU,KAAK,CAAC,QAAQ,CAAC,WAAW,GAAG;aAC7F,CAAC;YACF,MAAM;gBACL,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,QAAQ,UAAU;gBACvD,OAAO,EAAE,MAAM;aACf,CAAC;QACH,CAAC;KACD;CACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const rules: import("unocss").
|
|
1
|
+
export declare const rules: (import("unocss").StaticRule | import("unocss").DynamicRule<object> | import("unocss").DynamicRule<import("unocss").PresetUnoTheme>)[];
|
|
@@ -3,6 +3,7 @@ import { anchorRules } from './anchor.js';
|
|
|
3
3
|
import { clipPathRules } from './clipPath.js';
|
|
4
4
|
import { colorRules } from './color.js';
|
|
5
5
|
import { containerRules } from './container.js';
|
|
6
|
+
import { focusRules } from './focus.js';
|
|
6
7
|
import { overflowRules } from './overflow.js';
|
|
7
8
|
import { shadowRules } from './shadow.js';
|
|
8
9
|
import { utilRules } from './util.js';
|
|
@@ -19,5 +20,6 @@ export const rules = [
|
|
|
19
20
|
...utilRules,
|
|
20
21
|
...clipPathRules,
|
|
21
22
|
...containerRules,
|
|
23
|
+
...focusRules,
|
|
22
24
|
];
|
|
23
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/uno/rules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,yCAAyC;AACzC,kBAAkB;AAClB,gFAAgF;AAChF,MAAM;AAEN,uEAAuE;AAEvE,MAAM,CAAC,MAAM,KAAK,GAAG;IACpB,GAAG,UAAU;IACb,GAAG,WAAW;IACd,GAAG,aAAa;IAChB,GAAG,WAAW;IACd,GAAG,SAAS;IACZ,GAAG,aAAa;IAChB,GAAG,cAAc;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/uno/rules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,yCAAyC;AACzC,kBAAkB;AAClB,gFAAgF;AAChF,MAAM;AAEN,uEAAuE;AAEvE,MAAM,CAAC,MAAM,KAAK,GAAG;IACpB,GAAG,UAAU;IACb,GAAG,WAAW;IACd,GAAG,aAAa;IAChB,GAAG,WAAW;IACd,GAAG,SAAS;IACZ,GAAG,aAAa;IAChB,GAAG,cAAc;IACjB,GAAG,UAAU;CACb,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Theme } from '@unocss/preset-mini';
|
|
2
2
|
import { PreflightConfig } from '../preflights/index.js';
|
|
3
|
-
export declare function makeThemeColors(
|
|
3
|
+
export declare function makeThemeColors({ namedHues, }: PreflightConfig): Theme['colors'];
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// @unocss-include
|
|
2
2
|
import { PROPS } from '../logic/properties.js';
|
|
3
3
|
const contrastClamp = 'clamp(0, (0.36 / y - 1) * infinity, 1)';
|
|
4
|
-
export function makeThemeColors(
|
|
4
|
+
export function makeThemeColors({ namedHues, }) {
|
|
5
5
|
return Object.assign({ none: 'transparent', transparent: 'transparent', current: 'currentColor', black: `var(${PROPS.PALETTE.NAMED_SHADES('high-contrast').INK})`, white: `var(${PROPS.PALETTE.NAMED_SHADES('high-contrast').WASH})`, wash: `var(${PROPS.PALETTE.GRAY_SHADES.WASH})`,
|
|
6
6
|
// magic tokens
|
|
7
|
-
contrast: `color(from var(${PROPS.BACKGROUND_COLOR.CONTRAST},var(${PROPS.BACKGROUND_COLOR.FINAL},var(${PROPS.BACKGROUND_COLOR.INHERITED},var(${PROPS.MODE.WHITE})))) xyz-d65 ${contrastClamp} ${contrastClamp} ${contrastClamp})`, bg: `var(${PROPS.BACKGROUND_COLOR.FINAL}, var(${PROPS.BACKGROUND_COLOR.INHERITED}, transparent))`, fg: `var(${PROPS.COLOR.FINAL}, var(${PROPS.COLOR.INHERITED}, var(${PROPS.MODE.BLACK})))`, color: `var(${PROPS.COLOR.FINAL}, var(${PROPS.COLOR.INHERITED}, var(${PROPS.MODE.BLACK})))`, border: `var(${PROPS.BORDER_COLOR.ALL.FINAL}, var(${PROPS.BORDER_COLOR.ALL.INHERITED}, transparent))`, primary: shadesOf(PROPS.PALETTE.NAMED_SHADES('primary')), accent: shadesOf(PROPS.PALETTE.NAMED_SHADES('accent')), attention: shadesOf(PROPS.PALETTE.NAMED_SHADES('attention')), success: shadesOf(PROPS.PALETTE.NAMED_SHADES('success')), main: shadesOf(PROPS.PALETTE.SHADES), gray: shadesOf(PROPS.PALETTE.GRAY_SHADES) }, (
|
|
8
|
-
? Object.fromEntries(Object.keys(
|
|
7
|
+
contrast: `color(from var(${PROPS.BACKGROUND_COLOR.CONTRAST},var(${PROPS.BACKGROUND_COLOR.FINAL},var(${PROPS.BACKGROUND_COLOR.INHERITED},var(${PROPS.MODE.WHITE})))) xyz-d65 ${contrastClamp} ${contrastClamp} ${contrastClamp})`, bg: `var(${PROPS.BACKGROUND_COLOR.FINAL}, var(${PROPS.BACKGROUND_COLOR.INHERITED}, transparent))`, fg: `var(${PROPS.COLOR.FINAL}, var(${PROPS.COLOR.INHERITED}, var(${PROPS.MODE.BLACK})))`, color: `var(${PROPS.COLOR.FINAL}, var(${PROPS.COLOR.INHERITED}, var(${PROPS.MODE.BLACK})))`, border: `var(${PROPS.BORDER_COLOR.ALL.FINAL}, var(${PROPS.BORDER_COLOR.ALL.INHERITED}, transparent))`, primary: shadesOf(PROPS.PALETTE.NAMED_SHADES('primary')), accent: shadesOf(PROPS.PALETTE.NAMED_SHADES('accent')), attention: shadesOf(PROPS.PALETTE.NAMED_SHADES('attention')), success: shadesOf(PROPS.PALETTE.NAMED_SHADES('success')), focus: `var(${PROPS.USER.FOCUS_COLOR})`, main: shadesOf(PROPS.PALETTE.SHADES), gray: shadesOf(PROPS.PALETTE.GRAY_SHADES) }, (namedHues
|
|
8
|
+
? Object.fromEntries(Object.keys(namedHues).map(([name]) => [
|
|
9
9
|
name,
|
|
10
10
|
shadesOf(PROPS.PALETTE.NAMED_SHADES(name)),
|
|
11
11
|
]))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../../../../src/uno/theme/colors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAG/C,MAAM,aAAa,GAAG,wCAAwC,CAAC;AAE/D,MAAM,UAAU,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../../../../src/uno/theme/colors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAG/C,MAAM,aAAa,GAAG,wCAAwC,CAAC;AAE/D,MAAM,UAAU,eAAe,CAAC,EAC/B,SAAS,GACQ;IACjB,uBACC,IAAI,EAAE,aAAa,EACnB,WAAW,EAAE,aAAa,EAC1B,OAAO,EAAE,cAAc,EAEvB,KAAK,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,GAAG,GAAG,EAChE,KAAK,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,IAAI,GAAG,EACjE,IAAI,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,GAAG;QAE9C,eAAe;QACf,QAAQ,EAAE,kBAAkB,KAAK,CAAC,gBAAgB,CAAC,QAAQ,QAAQ,KAAK,CAAC,gBAAgB,CAAC,KAAK,QAAQ,KAAK,CAAC,gBAAgB,CAAC,SAAS,QAAQ,KAAK,CAAC,IAAI,CAAC,KAAK,gBAAgB,aAAa,IAAI,aAAa,IAAI,aAAa,GAAG,EACjO,EAAE,EAAE,OAAO,KAAK,CAAC,gBAAgB,CAAC,KAAK,SAAS,KAAK,CAAC,gBAAgB,CAAC,SAAS,iBAAiB,EACjG,EAAE,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS,KAAK,CAAC,KAAK,CAAC,SAAS,SAAS,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,EACxF,KAAK,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS,KAAK,CAAC,KAAK,CAAC,SAAS,SAAS,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,EAC3F,MAAM,EAAE,OAAO,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,SAAS,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,iBAAiB,EAErG,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EACxD,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EACtD,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,EAC5D,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAExD,KAAK,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,EAEvC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAEtC,CAAC,SAAS;QACZ,CAAC,CAAC,MAAM,CAAC,WAAW,CAClB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI;YACJ,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SAC1C,CAAC,CACD;QACH,CAAC,CAAC,EAAE,CAAC,EACL;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,OAAoC;IACrD,OAAO;QACN,IAAI,EAAE,OAAO,OAAO,CAAC,IAAI,GAAG;QAC5B,KAAK,EAAE,OAAO,OAAO,CAAC,KAAK,GAAG;QAC9B,OAAO,EAAE,OAAO,OAAO,CAAC,GAAG,GAAG;QAC9B,IAAI,EAAE,OAAO,OAAO,CAAC,IAAI,GAAG;QAC5B,GAAG,EAAE,OAAO,OAAO,CAAC,GAAG,GAAG;KAC1B,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
Binary file
|
|
@@ -93,7 +93,7 @@ export function ButtonRoot({
|
|
|
93
93
|
...props,
|
|
94
94
|
disabled: disabled || isLoading,
|
|
95
95
|
'data-disabled': visuallyDisabled,
|
|
96
|
-
'data-focus': visuallyFocused,
|
|
96
|
+
'data-focus-visible': visuallyFocused ? true : undefined,
|
|
97
97
|
'data-size': size,
|
|
98
98
|
'data-loading': isLoading,
|
|
99
99
|
'data-has-label': hasLabelChild,
|
|
@@ -48,7 +48,8 @@ export function getButtonClassName({
|
|
|
48
48
|
emphasis === 'default',
|
|
49
49
|
'layer-components:(color-main-ink bg-transparent aria-pressed:bg-main-wash)':
|
|
50
50
|
emphasis === 'ghost',
|
|
51
|
-
'layer-components:bg-black':
|
|
51
|
+
'layer-components:bg-black layer-variants:focus-visible:ring-gray-dark':
|
|
52
|
+
emphasis === 'contrast',
|
|
52
53
|
},
|
|
53
54
|
|
|
54
55
|
{
|
|
@@ -65,9 +66,7 @@ export function getButtonClassName({
|
|
|
65
66
|
|
|
66
67
|
'layer-components:hover:(ring-4 bg-main bg-lighten-2)',
|
|
67
68
|
|
|
68
|
-
'layer-components:
|
|
69
|
-
'layer-components:focus-visible:(outline-off ring-6 ring-accent)',
|
|
70
|
-
'layer-components:[&[data-focus=true]]:(outline-off ring-6 ring-accent)',
|
|
69
|
+
'layer-components:foc-effect-lg',
|
|
71
70
|
|
|
72
71
|
'layer-components:active:(ring-8 bg-darken-1)',
|
|
73
72
|
|
|
@@ -214,11 +214,11 @@ export function CameraShutterButton({
|
|
|
214
214
|
|
|
215
215
|
const StyledShutterButton = withClassName(
|
|
216
216
|
BaseButton,
|
|
217
|
-
'absolute bottom-3 left-1/2 -
|
|
218
|
-
'hover:bg-gray-wash
|
|
219
|
-
'focus-visible:bg-lighten-1',
|
|
220
|
-
'
|
|
221
|
-
'sm:
|
|
217
|
+
'layer-components:(absolute bottom-3 left-1/2 h-16 w-16 cursor-pointer border-2 rounded-full border-solid opacity-80 ring-2 bg-white border-black ring-white -translate-x-1/2)',
|
|
218
|
+
'layer-components:(hover:opacity-100 hover:bg-gray-wash)',
|
|
219
|
+
'layer-components:focus-visible:bg-lighten-1',
|
|
220
|
+
'layer-components:(foc-effect focus:opacity-100)',
|
|
221
|
+
'layer-components:(sm:h-8 sm:w-8)',
|
|
222
222
|
);
|
|
223
223
|
|
|
224
224
|
export interface CameraDeviceSelectorProps {
|
|
@@ -65,11 +65,11 @@ export function CardMain({
|
|
|
65
65
|
classNames(
|
|
66
66
|
'layer-components:cursor-pointer',
|
|
67
67
|
'layer-components:hover:(color-black bg-black/10)',
|
|
68
|
-
'layer-components:
|
|
69
|
-
'layer-components:focus-visible:(
|
|
70
|
-
'layer-components:data-[visually-focused]:(ring-
|
|
68
|
+
'layer-components:foc-effect',
|
|
69
|
+
'layer-components:focus-visible:(ring-inset bg-black/10)',
|
|
70
|
+
'layer-components:data-[visually-focused]:(ring-inset bg-black/10)',
|
|
71
71
|
'layer-components:disabled:(cursor-default)',
|
|
72
|
-
'layer-components:data-[
|
|
72
|
+
'layer-components:data-[disabled]:(cursor-default)',
|
|
73
73
|
),
|
|
74
74
|
className,
|
|
75
75
|
),
|
|
@@ -85,8 +85,8 @@ export function CardMain({
|
|
|
85
85
|
state: {
|
|
86
86
|
interactive: !!isInteractive,
|
|
87
87
|
compact: !!compact,
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
focusVisible: !!visuallyFocused,
|
|
89
|
+
disabled: !!visuallyDisabled,
|
|
90
90
|
},
|
|
91
91
|
});
|
|
92
92
|
|
|
@@ -30,13 +30,13 @@ export function CheckboxRoot({
|
|
|
30
30
|
{...props}
|
|
31
31
|
className={classNames(
|
|
32
32
|
'layer-components:(relative block h-28px w-28px flex-shrink-0 cursor-pointer border border-default rounded-lg shadow-sm transition-all bg-white)',
|
|
33
|
-
'layer-components:
|
|
33
|
+
'layer-components:foc-effect',
|
|
34
34
|
checkedMode === 'faded'
|
|
35
35
|
? 'layer-components:data-[checked]:(animate-checkbox-fade animate-forwards bg-main)'
|
|
36
36
|
: 'layer-components:data-[checked]:(bg-main border-main-ink)',
|
|
37
37
|
'layer-components:[&:hover:not(:disabled)]:(ring-2 bg-lighten-2 ring-bg)',
|
|
38
38
|
'layer-components:[&:active:not(:disabled)]:(ring-4 bg-darken-1)',
|
|
39
|
-
'layer-components:[&:disabled]:(
|
|
39
|
+
'layer-components:[&:disabled]:(bg-transparent border-gray-light shadow-none)',
|
|
40
40
|
className,
|
|
41
41
|
)}
|
|
42
42
|
/>
|
|
@@ -57,8 +57,8 @@ export const CalendarDay = withClassName(
|
|
|
57
57
|
BaseCalendarDay,
|
|
58
58
|
'layer-components:(relative mb--1px mr--1px border border-solid color-black bg-white border-transparent)',
|
|
59
59
|
'layer-components:(flex cursor-pointer items-center justify-center transition)',
|
|
60
|
-
'layer-components:data-[highlighted]:(z-1 ring-2 ring-
|
|
61
|
-
'layer-components:hover:(z-1 ring-2 ring-
|
|
60
|
+
'layer-components:data-[highlighted]:(z-1 outline-none ring-2 ring-focus)',
|
|
61
|
+
'layer-components:hover:ouline-none layer-components:hover:(z-1 ring-2 ring-focus)',
|
|
62
62
|
'layer-components:active:(rounded bg-main-light)',
|
|
63
63
|
'layer-components:[&[data-selected]]:(z-2 rounded bg-main)',
|
|
64
64
|
'layer-components:[&[data-in-range]]:(z-1 rounded-none bg-main-light)',
|
|
@@ -14,9 +14,9 @@ import {
|
|
|
14
14
|
|
|
15
15
|
const RangeLayout = withClassName(
|
|
16
16
|
'div',
|
|
17
|
-
'layer-components:(grid
|
|
18
|
-
'layer-components:(
|
|
19
|
-
'layer-components:sm:grid-areas-[prevMonth_leftMonth_rightMonth_nextMonth]-[leftGrid_leftGrid_rightGrid_rightGrid]
|
|
17
|
+
'layer-components:(grid grid-cols-[auto_1fr_auto] grid-areas-[prevMonth_leftMonth_nextMonth]-[leftGrid_leftGrid_leftGrid])',
|
|
18
|
+
'layer-components:(grid-rows-[auto_1fr] gap-2)',
|
|
19
|
+
'sm:grid-cols-[auto_1fr_1fr_auto] layer-components:sm:grid-areas-[prevMonth_leftMonth_rightMonth_nextMonth]-[leftGrid_leftGrid_rightGrid_rightGrid]',
|
|
20
20
|
);
|
|
21
21
|
|
|
22
22
|
function DateRangePickerMonthControls() {
|
|
@@ -107,7 +107,8 @@ export function EditableText({
|
|
|
107
107
|
inputClassName,
|
|
108
108
|
'layer-variants:(w-auto inline-flex items-center gap-sm rounded-md px-md text-left font-size-inherit color-inherit bg-transparent border-transparent shadow-none)',
|
|
109
109
|
'layer-variants:hover:(bg-main-light/80)',
|
|
110
|
-
'
|
|
110
|
+
'foc-effect',
|
|
111
|
+
'layer-variants:focus-visible:(bg-main-light/80)',
|
|
111
112
|
'cursor-pointer',
|
|
112
113
|
className,
|
|
113
114
|
)}
|
|
@@ -167,8 +167,9 @@ export function HorizontalList({
|
|
|
167
167
|
emphasis="ghost"
|
|
168
168
|
className={clsx(
|
|
169
169
|
'layer-variants:(sticky left-0 top-2 z-1 flex-shrink-0)',
|
|
170
|
+
'ring-inset foc',
|
|
170
171
|
!open &&
|
|
171
|
-
'layer-variants:(h-full border-r rounded-none border-r-solid border-r-gray)',
|
|
172
|
+
'layer-variants:(h-full border-r rounded-l-sm rounded-r-none border-r-solid border-r-gray)',
|
|
172
173
|
)}
|
|
173
174
|
>
|
|
174
175
|
<Icon
|
|
@@ -20,10 +20,10 @@ export const inputClassName = clsx(
|
|
|
20
20
|
);
|
|
21
21
|
|
|
22
22
|
const inputBorderClassName = clsx(
|
|
23
|
-
'layer-components:(min-w-60px flex flex-row items-center gap-xs border-1 rounded-lg border-solid text-md shadow-sm shadow-inset transition-shadow color-black bg-white border-black)',
|
|
23
|
+
'layer-components:(min-w-60px flex flex-row items-center gap-xs border-1 border-thin rounded-lg border-solid text-md shadow-sm shadow-inset transition-shadow color-black bg-white border-black)',
|
|
24
24
|
'layer-components:(w-max-content overflow-clip)',
|
|
25
25
|
'layer-components:[&:has(input:disabled),&:has(textarea:disabled)]:(bg-transparent border-gray shadow-none placeholder-gray-dark)',
|
|
26
|
-
'layer-components:
|
|
26
|
+
'layer-components:foc-contained',
|
|
27
27
|
'layer-variants:[&:has(input:focus[data-focus-clicked]),&:has(textarea:focus[data-focus-clicked])]:(outline-none ring ring-4 bg-lighten-3 ring-main-light)',
|
|
28
28
|
'layer-components:[&:has(input:hover),&:has(textarea:hover)]:border-black',
|
|
29
29
|
'layer-components:[&>.icon]:mx-sm',
|
|
@@ -16,7 +16,7 @@ export const LightboxRoot = Dialog.Root;
|
|
|
16
16
|
export const LightboxTrigger = withClassName(
|
|
17
17
|
Dialog.Trigger,
|
|
18
18
|
'layer-components:cursor-pointer',
|
|
19
|
-
'
|
|
19
|
+
'foc-effect',
|
|
20
20
|
);
|
|
21
21
|
export const LightboxPortal = Dialog.Portal;
|
|
22
22
|
export const LightboxTitle = () => (
|
|
@@ -1,101 +1,101 @@
|
|
|
1
|
-
import { Button } from '@base-ui/react/button';
|
|
2
|
-
import { UseRenderComponentProps } from '@base-ui/react/use-render';
|
|
3
|
-
import classNames, { clsx } from 'clsx';
|
|
4
|
-
import { ReactElement, ReactNode, Ref } from 'react';
|
|
5
|
-
import { withClassName } from '../../hooks.js';
|
|
6
|
-
import { Icon, IconProps } from '../icon/index.js';
|
|
7
|
-
|
|
8
|
-
export const navBarItemClass = classNames(
|
|
9
|
-
'layer-components:(relative h-full flex flex-col cursor-pointer select-none items-center justify-center gap-6px whitespace-nowrap rounded-sm border-none px-3 py-1 text-sm transition-colors color-black bg-transparent)',
|
|
10
|
-
'layer-components:active:bg-darken-2',
|
|
11
|
-
'layer-components:hover:(bg-main-light)',
|
|
12
|
-
'layer-components:
|
|
13
|
-
'layer-components:[&[data-active=true]]:(color-black color-lighten-2 bg-main-light/50)',
|
|
14
|
-
'layer-responsive:md:(h-auto flex-row-reverse justify-start gap-2 overflow-visible active:bg-darken-2)',
|
|
15
|
-
);
|
|
16
|
-
|
|
17
|
-
export interface NavBarItemProps extends UseRenderComponentProps<'button'> {
|
|
18
|
-
className?: string;
|
|
19
|
-
children?: ReactNode;
|
|
20
|
-
active?: boolean;
|
|
21
|
-
color?: 'primary' | 'gray';
|
|
22
|
-
render?: ReactElement | (() => ReactElement);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export const NavBarItem = function NavBarItem({
|
|
26
|
-
ref,
|
|
27
|
-
className,
|
|
28
|
-
active,
|
|
29
|
-
color = 'primary',
|
|
30
|
-
...rest
|
|
31
|
-
}: NavBarItemProps & {
|
|
32
|
-
ref?: React.Ref<HTMLButtonElement>;
|
|
33
|
-
}) {
|
|
34
|
-
return (
|
|
35
|
-
<Button
|
|
36
|
-
ref={ref}
|
|
37
|
-
className={classNames(navBarItemClass, `palette-${color}`, className)}
|
|
38
|
-
data-active={active}
|
|
39
|
-
{...rest}
|
|
40
|
-
/>
|
|
41
|
-
);
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
export const NavBarItemIconWrapper = withClassName(
|
|
45
|
-
'div',
|
|
46
|
-
'layer-components:(relative flex)',
|
|
47
|
-
'layer-components:md:
|
|
48
|
-
'layer-variants:md:[*[data-active=true]_&]:bg-[var(--bg)]',
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
export const NavBarItemText = withClassName(
|
|
52
|
-
'span',
|
|
53
|
-
'layer-components:(overflow-hidden
|
|
54
|
-
);
|
|
55
|
-
|
|
56
|
-
interface NavBarItemIconProps extends Omit<IconProps, 'name'> {
|
|
57
|
-
name?: IconProps['name'];
|
|
58
|
-
className?: string;
|
|
59
|
-
children?: ReactNode;
|
|
60
|
-
ref?: Ref<any>;
|
|
61
|
-
}
|
|
62
|
-
export const NavBarItemIcon = function NavBarItemIcon({
|
|
63
|
-
ref,
|
|
64
|
-
className,
|
|
65
|
-
name = 'placeholder',
|
|
66
|
-
...rest
|
|
67
|
-
}: NavBarItemIconProps) {
|
|
68
|
-
return (
|
|
69
|
-
<Icon
|
|
70
|
-
name={name}
|
|
71
|
-
className={clsx(
|
|
72
|
-
'layer-components:(relative z-1 flex color-inherit)',
|
|
73
|
-
'layer-variants:[*[data-active=true]_&]:fill-main',
|
|
74
|
-
className,
|
|
75
|
-
)}
|
|
76
|
-
{...rest}
|
|
77
|
-
ref={ref}
|
|
78
|
-
/>
|
|
79
|
-
);
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
export const NavBarItemPip = withClassName(
|
|
83
|
-
'div',
|
|
84
|
-
'palette-attention',
|
|
85
|
-
'layer-components:(absolute
|
|
86
|
-
);
|
|
87
|
-
|
|
88
|
-
export const NavBarRoot = withClassName(
|
|
89
|
-
'div',
|
|
90
|
-
'layer-components:(
|
|
91
|
-
'pb-[calc(0.25rem+env(safe-area-inset-bottom,0px))]',
|
|
92
|
-
'layer-components:md:(
|
|
93
|
-
);
|
|
94
|
-
|
|
95
|
-
export const NavBar = Object.assign(NavBarRoot, {
|
|
96
|
-
Item: NavBarItem,
|
|
97
|
-
ItemIcon: NavBarItemIcon,
|
|
98
|
-
ItemText: NavBarItemText,
|
|
99
|
-
ItemIconWrapper: NavBarItemIconWrapper,
|
|
100
|
-
ItemPip: NavBarItemPip,
|
|
101
|
-
});
|
|
1
|
+
import { Button } from '@base-ui/react/button';
|
|
2
|
+
import { UseRenderComponentProps } from '@base-ui/react/use-render';
|
|
3
|
+
import classNames, { clsx } from 'clsx';
|
|
4
|
+
import { ReactElement, ReactNode, Ref } from 'react';
|
|
5
|
+
import { withClassName } from '../../hooks.js';
|
|
6
|
+
import { Icon, IconProps } from '../icon/index.js';
|
|
7
|
+
|
|
8
|
+
export const navBarItemClass = classNames(
|
|
9
|
+
'layer-components:(relative h-full flex flex-col cursor-pointer select-none items-center justify-center gap-6px whitespace-nowrap rounded-sm border-none px-3 py-1 text-sm transition-colors color-black bg-transparent)',
|
|
10
|
+
'layer-components:active:bg-darken-2',
|
|
11
|
+
'layer-components:hover:(bg-main-light)',
|
|
12
|
+
'layer-components:foc-effect',
|
|
13
|
+
'layer-components:[&[data-active=true]]:(color-black color-lighten-2 bg-main-light/50)',
|
|
14
|
+
'layer-responsive:md:(h-auto flex-row-reverse justify-start gap-2 overflow-visible active:bg-darken-2)',
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
export interface NavBarItemProps extends UseRenderComponentProps<'button'> {
|
|
18
|
+
className?: string;
|
|
19
|
+
children?: ReactNode;
|
|
20
|
+
active?: boolean;
|
|
21
|
+
color?: 'primary' | 'gray';
|
|
22
|
+
render?: ReactElement | (() => ReactElement);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export const NavBarItem = function NavBarItem({
|
|
26
|
+
ref,
|
|
27
|
+
className,
|
|
28
|
+
active,
|
|
29
|
+
color = 'primary',
|
|
30
|
+
...rest
|
|
31
|
+
}: NavBarItemProps & {
|
|
32
|
+
ref?: React.Ref<HTMLButtonElement>;
|
|
33
|
+
}) {
|
|
34
|
+
return (
|
|
35
|
+
<Button
|
|
36
|
+
ref={ref}
|
|
37
|
+
className={classNames(navBarItemClass, `palette-${color}`, className)}
|
|
38
|
+
data-active={active}
|
|
39
|
+
{...rest}
|
|
40
|
+
/>
|
|
41
|
+
);
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export const NavBarItemIconWrapper = withClassName(
|
|
45
|
+
'div',
|
|
46
|
+
'layer-components:(relative flex)',
|
|
47
|
+
'layer-components:md:bg-gray-blend layer-components:md:(rounded-lg p-6px)',
|
|
48
|
+
'layer-variants:md:[*[data-active=true]_&]:bg-[var(--bg)]',
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
export const NavBarItemText = withClassName(
|
|
52
|
+
'span',
|
|
53
|
+
'layer-components:(inline-block overflow-hidden text-ellipsis whitespace-nowrap text-xxs) layer-components:md:(text-md leading-normal)',
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
interface NavBarItemIconProps extends Omit<IconProps, 'name'> {
|
|
57
|
+
name?: IconProps['name'];
|
|
58
|
+
className?: string;
|
|
59
|
+
children?: ReactNode;
|
|
60
|
+
ref?: Ref<any>;
|
|
61
|
+
}
|
|
62
|
+
export const NavBarItemIcon = function NavBarItemIcon({
|
|
63
|
+
ref,
|
|
64
|
+
className,
|
|
65
|
+
name = 'placeholder',
|
|
66
|
+
...rest
|
|
67
|
+
}: NavBarItemIconProps) {
|
|
68
|
+
return (
|
|
69
|
+
<Icon
|
|
70
|
+
name={name}
|
|
71
|
+
className={clsx(
|
|
72
|
+
'layer-components:(relative z-1 flex color-inherit)',
|
|
73
|
+
'layer-variants:[*[data-active=true]_&]:fill-main',
|
|
74
|
+
className,
|
|
75
|
+
)}
|
|
76
|
+
{...rest}
|
|
77
|
+
ref={ref}
|
|
78
|
+
/>
|
|
79
|
+
);
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
export const NavBarItemPip = withClassName(
|
|
83
|
+
'div',
|
|
84
|
+
'palette-attention',
|
|
85
|
+
'layer-components:(absolute right-6px top-6px h-6px w-6px rounded-lg shadow-sm bg-main)',
|
|
86
|
+
);
|
|
87
|
+
|
|
88
|
+
export const NavBarRoot = withClassName(
|
|
89
|
+
'div',
|
|
90
|
+
'layer-components:([grid-auto-columns:1fr] [grid-auto-flow:column] z-50 grid h-auto w-full justify-items-center overflow-hidden rounded-none p-1)',
|
|
91
|
+
'pb-[calc(0.25rem+env(safe-area-inset-bottom,0px))]',
|
|
92
|
+
'layer-components:md:(h-min-content flex flex-col items-stretch justify-start gap-2 overflow-x-hidden rounded-none border-none pb-10 bg-transparent border-transparent overflow-y-auto shadow-none)',
|
|
93
|
+
);
|
|
94
|
+
|
|
95
|
+
export const NavBar = Object.assign(NavBarRoot, {
|
|
96
|
+
Item: NavBarItem,
|
|
97
|
+
ItemIcon: NavBarItemIcon,
|
|
98
|
+
ItemText: NavBarItemText,
|
|
99
|
+
ItemIconWrapper: NavBarItemIconWrapper,
|
|
100
|
+
ItemPip: NavBarItemPip,
|
|
101
|
+
});
|
|
@@ -14,7 +14,7 @@ function NoteRoot({ className, color, children, ...rest }: NoteProps) {
|
|
|
14
14
|
<div
|
|
15
15
|
className={classNames(
|
|
16
16
|
color && `palette-${color}`,
|
|
17
|
-
'
|
|
17
|
+
'foc-contained',
|
|
18
18
|
'layer-variants:[&:has(input:focus[data-focus-clicked]),&:has(textarea:focus[data-focus-clicked])]:(ring ring-4 bg-lighten-3 ring-main-light)',
|
|
19
19
|
className,
|
|
20
20
|
)}
|
|
@@ -34,7 +34,7 @@ function NoteRoot({ className, color, children, ...rest }: NoteProps) {
|
|
|
34
34
|
aria-hidden
|
|
35
35
|
>
|
|
36
36
|
{/* folded corner */}
|
|
37
|
-
<div className="layer-components:(relative h-[20px] w-[20px] flex-[0_0_20px] border-0 border-solid border-main-dark) layer-variants:(border-b
|
|
37
|
+
<div className="layer-components:(relative h-[20px] w-[20px] flex-[0_0_20px] border-0 border-solid border-main-dark) layer-variants:(border-b border-l)">
|
|
38
38
|
{/* top corner */}
|
|
39
39
|
<div
|
|
40
40
|
className={`layer-components:(box-content h-0 w-0 transform-origin-br translate--7px rotate--45 border-13px border-solid border-transparent border-r-main-wash border-r-darken-1)`}
|
|
@@ -43,7 +43,7 @@ function NoteRoot({ className, color, children, ...rest }: NoteProps) {
|
|
|
43
43
|
<div className="layer-components:(absolute left-9px top--3px h-27px w-0.5px transform-origin-cc rotate--45 bg-main-dark)" />
|
|
44
44
|
</div>
|
|
45
45
|
{/* bottom right corner */}
|
|
46
|
-
<div className="layer-components:(flex-1 border-0 border-solid bg-main-wash bg-darken-1 border-main-dark) layer-variants:(border-b
|
|
46
|
+
<div className="layer-components:(flex-1 border-0 border-solid bg-main-wash bg-darken-1 border-main-dark) layer-variants:(border-b border-r)" />
|
|
47
47
|
</div>
|
|
48
48
|
</div>
|
|
49
49
|
</div>
|
|
@@ -4,7 +4,7 @@ export const popupClassName = clsx(
|
|
|
4
4
|
'layer-primitives:(max-w-90vw min-w-120px border rounded-md shadow-lg transition bg-white border-black)',
|
|
5
5
|
'layer-primitives:transform-origin-[var(--transform-origin)]',
|
|
6
6
|
'layer-primitives:(max-h-[--available-height] max-w-[--available-width])',
|
|
7
|
-
'layer-primitives:
|
|
7
|
+
'layer-primitives:foc',
|
|
8
8
|
|
|
9
9
|
'transform-origin-[--transform-origin] will-change-transform',
|
|
10
10
|
'important:motion-reduce:transition-none',
|