@seed-design/lynx-css 0.10.2 → 0.11.1

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.
Files changed (59) hide show
  1. package/all.css +1214 -179
  2. package/all.min.css +1 -1
  3. package/base.css +1 -1
  4. package/base.min.css +1 -1
  5. package/package.json +9 -3
  6. package/recipes/accordion.css +10 -0
  7. package/recipes/accordion.d.ts +1 -1
  8. package/recipes/accordion.mjs +4 -0
  9. package/recipes/action-button.css +21 -13
  10. package/recipes/action-button.mjs +30 -11
  11. package/recipes/callout.css +18 -0
  12. package/recipes/callout.d.ts +4 -0
  13. package/recipes/callout.mjs +30 -1
  14. package/recipes/checkbox.css +18 -6
  15. package/recipes/checkbox.d.ts +1 -1
  16. package/recipes/checkbox.mjs +4 -0
  17. package/recipes/checkmark.css +10 -6
  18. package/recipes/chip.css +18 -0
  19. package/recipes/chip.mjs +30 -0
  20. package/recipes/input-button.css +209 -0
  21. package/recipes/input-button.d.ts +40 -0
  22. package/recipes/input-button.mjs +99 -0
  23. package/recipes/list-header.css +22 -0
  24. package/recipes/list-header.d.ts +22 -0
  25. package/recipes/list-header.mjs +29 -0
  26. package/recipes/list-item.css +120 -0
  27. package/recipes/list-item.d.ts +32 -0
  28. package/recipes/list-item.mjs +93 -0
  29. package/recipes/list.css +5 -0
  30. package/recipes/list.d.ts +19 -0
  31. package/recipes/list.mjs +22 -0
  32. package/recipes/menu-item.css +119 -0
  33. package/recipes/menu-item.d.ts +36 -0
  34. package/recipes/menu-item.mjs +91 -0
  35. package/recipes/menu-sheet-item.css +69 -0
  36. package/recipes/menu-sheet-item.d.ts +32 -0
  37. package/recipes/menu-sheet-item.mjs +69 -0
  38. package/recipes/menu-sheet.css +104 -0
  39. package/recipes/menu-sheet.d.ts +28 -0
  40. package/recipes/menu-sheet.mjs +88 -0
  41. package/recipes/menu.css +101 -0
  42. package/recipes/menu.d.ts +32 -0
  43. package/recipes/menu.mjs +85 -0
  44. package/recipes/page-banner.css +136 -99
  45. package/recipes/page-banner.d.ts +4 -0
  46. package/recipes/page-banner.mjs +61 -1
  47. package/recipes/radio.css +3 -0
  48. package/recipes/radiomark.css +4 -1
  49. package/recipes/reaction-button.css +145 -0
  50. package/recipes/reaction-button.d.ts +40 -0
  51. package/recipes/reaction-button.mjs +101 -0
  52. package/recipes/segmented-control.css +16 -2
  53. package/recipes/segmented-control.d.ts +1 -1
  54. package/recipes/segmented-control.mjs +8 -0
  55. package/recipes/select-box.css +12 -0
  56. package/recipes/select-box.d.ts +1 -1
  57. package/recipes/select-box.mjs +4 -0
  58. package/scale-feedback/index.d.ts +2 -0
  59. package/scale-feedback/index.mjs +3 -0
@@ -0,0 +1,88 @@
1
+ import './menu-sheet.css';
2
+ import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
3
+
4
+ const menuSheetSlotNames = [
5
+ [
6
+ "positioner",
7
+ "seed-menu-sheet__positioner"
8
+ ],
9
+ [
10
+ "backdrop",
11
+ "seed-menu-sheet__backdrop"
12
+ ],
13
+ [
14
+ "content",
15
+ "seed-menu-sheet__content"
16
+ ],
17
+ [
18
+ "contentInner",
19
+ "seed-menu-sheet__contentInner"
20
+ ],
21
+ [
22
+ "header",
23
+ "seed-menu-sheet__header"
24
+ ],
25
+ [
26
+ "title",
27
+ "seed-menu-sheet__title"
28
+ ],
29
+ [
30
+ "description",
31
+ "seed-menu-sheet__description"
32
+ ],
33
+ [
34
+ "list",
35
+ "seed-menu-sheet__list"
36
+ ],
37
+ [
38
+ "group",
39
+ "seed-menu-sheet__group"
40
+ ],
41
+ [
42
+ "footer",
43
+ "seed-menu-sheet__footer"
44
+ ],
45
+ [
46
+ "closeButton",
47
+ "seed-menu-sheet__closeButton"
48
+ ],
49
+ [
50
+ "closeButtonLabel",
51
+ "seed-menu-sheet__closeButtonLabel"
52
+ ]
53
+ ];
54
+
55
+ const defaultVariant = {
56
+ "skipAnimation": false,
57
+ "closeButtonPressed": false
58
+ };
59
+
60
+ const compoundVariants = [];
61
+
62
+ export const menuSheetVariantMap = {
63
+ "skipAnimation": [
64
+ true,
65
+ false
66
+ ],
67
+ "closeButtonPressed": [
68
+ true,
69
+ false
70
+ ]
71
+ };
72
+
73
+ export const menuSheetVariantKeys = Object.keys(menuSheetVariantMap);
74
+
75
+ export function menuSheet(props) {
76
+ return Object.fromEntries(
77
+ menuSheetSlotNames.map(([slot, className]) => {
78
+ return [
79
+ slot,
80
+ createClassName(className, mergeVariants(defaultVariant, props), compoundVariants),
81
+ ];
82
+ }),
83
+ );
84
+ }
85
+
86
+ Object.assign(menuSheet, { splitVariantProps: (props) => splitVariantProps(props, menuSheetVariantMap) });
87
+
88
+ // @recipe(seed): menu-sheet
@@ -0,0 +1,101 @@
1
+ .seed-menu__positioner {
2
+ position: absolute;
3
+ top: 0;
4
+ left: 0;
5
+ width: 100%;
6
+ height: 100%;
7
+ z-index: 0
8
+ }
9
+ .seed-menu__backdrop {
10
+ position: absolute;
11
+ top: 0;
12
+ right: 0;
13
+ bottom: 0;
14
+ left: 0
15
+ }
16
+ .seed-menu__content {
17
+ position: absolute;
18
+ display: flex;
19
+ flex-direction: column;
20
+ border-radius: var(--seed-radius-r5);
21
+ background-color: var(--seed-color-bg-layer-floating);
22
+ box-shadow: var(--seed-shadow-s3);
23
+ overflow: hidden;
24
+ transition-property: opacity, transform
25
+ }
26
+ .seed-menu__scrollArea {
27
+ width: 100%;
28
+ max-height: 480px
29
+ }
30
+ .seed-menu__scrollContent {
31
+ display: flex;
32
+ flex-direction: column;
33
+ padding-top: var(--seed-dimension-x2);
34
+ padding-bottom: var(--seed-dimension-x2);
35
+ gap: var(--seed-dimension-x2)
36
+ }
37
+ .seed-menu__group {
38
+ display: flex;
39
+ flex-direction: column;
40
+ flex-shrink: 0
41
+ }
42
+ .seed-menu__groupLabel {
43
+ color: var(--seed-color-fg-neutral-subtle);
44
+ flex-shrink: 0
45
+ }
46
+ .seed-menu__separator {
47
+ height: 1px;
48
+ flex-shrink: 0;
49
+ margin-left: var(--seed-dimension-x4);
50
+ margin-right: var(--seed-dimension-x4);
51
+ margin-bottom: var(--seed-dimension-x2);
52
+ background-color: var(--seed-color-stroke-neutral-muted)
53
+ }
54
+ .seed-menu__content--size_medium {
55
+ width: 240px
56
+ }
57
+ .seed-menu__groupLabel--size_medium {
58
+ padding-top: var(--seed-dimension-x2_5);
59
+ padding-bottom: var(--seed-dimension-x2_5);
60
+ padding-left: var(--seed-dimension-x4);
61
+ padding-right: var(--seed-dimension-x4);
62
+ font-size: var(--seed-font-size-t4);
63
+ line-height: var(--seed-line-height-t4);
64
+ font-weight: var(--seed-font-weight-medium)
65
+ }
66
+ .seed-menu__content--size_small {
67
+ width: 200px
68
+ }
69
+ .seed-menu__groupLabel--size_small {
70
+ padding-top: var(--seed-dimension-x2);
71
+ padding-bottom: var(--seed-dimension-x2);
72
+ padding-left: var(--seed-dimension-x4);
73
+ padding-right: var(--seed-dimension-x4);
74
+ font-size: var(--seed-font-size-t3);
75
+ line-height: var(--seed-line-height-t3);
76
+ font-weight: var(--seed-font-weight-regular)
77
+ }
78
+ .seed-menu__content--open_true {
79
+ opacity: 1;
80
+ transform: scale(1);
81
+ transition-duration: var(--seed-duration-d3);
82
+ transition-timing-function: var(--seed-timing-function-enter)
83
+ }
84
+ .seed-menu__content--open_false {
85
+ opacity: 0;
86
+ transform: scale(0.95);
87
+ transition-duration: var(--seed-duration-d2);
88
+ transition-timing-function: var(--seed-timing-function-exit)
89
+ }
90
+ .seed-menu__content--positioned_false {
91
+ opacity: 0;
92
+ transform: scale(1);
93
+ transition-duration: 0s
94
+ }
95
+ .seed-menu__content--open_true-positioned_true {
96
+ animation-name: seed-enter;
97
+ animation-duration: var(--seed-duration-d3);
98
+ animation-timing-function: var(--seed-timing-function-enter);
99
+ --seed-enter-opacity: 0;
100
+ --seed-enter-scale: 0.95
101
+ }
@@ -0,0 +1,32 @@
1
+ declare interface MenuVariant {
2
+ /**
3
+ * @default "medium"
4
+ */
5
+ size: "medium" | "small";
6
+ /**
7
+ * @default false
8
+ */
9
+ open: boolean;
10
+ /**
11
+ * @default false
12
+ */
13
+ positioned: boolean;
14
+ }
15
+
16
+ declare type MenuVariantMap = {
17
+ [key in keyof MenuVariant]: Array<MenuVariant[key]>;
18
+ };
19
+
20
+ export declare type MenuVariantProps = Partial<MenuVariant>;
21
+
22
+ export declare type MenuSlotName = "positioner" | "backdrop" | "content" | "scrollArea" | "scrollContent" | "group" | "groupLabel" | "separator";
23
+
24
+ export declare const menuVariantMap: MenuVariantMap;
25
+
26
+ export declare const menu: ((
27
+ props?: MenuVariantProps,
28
+ ) => Record<MenuSlotName, string>) & {
29
+ splitVariantProps: <T extends MenuVariantProps>(
30
+ props: T,
31
+ ) => [MenuVariantProps, Omit<T, keyof MenuVariantProps>];
32
+ }
@@ -0,0 +1,85 @@
1
+ import './menu.css';
2
+ import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
3
+
4
+ const menuSlotNames = [
5
+ [
6
+ "positioner",
7
+ "seed-menu__positioner"
8
+ ],
9
+ [
10
+ "backdrop",
11
+ "seed-menu__backdrop"
12
+ ],
13
+ [
14
+ "content",
15
+ "seed-menu__content"
16
+ ],
17
+ [
18
+ "scrollArea",
19
+ "seed-menu__scrollArea"
20
+ ],
21
+ [
22
+ "scrollContent",
23
+ "seed-menu__scrollContent"
24
+ ],
25
+ [
26
+ "group",
27
+ "seed-menu__group"
28
+ ],
29
+ [
30
+ "groupLabel",
31
+ "seed-menu__groupLabel"
32
+ ],
33
+ [
34
+ "separator",
35
+ "seed-menu__separator"
36
+ ]
37
+ ];
38
+
39
+ const defaultVariant = {
40
+ "size": "medium",
41
+ "open": false,
42
+ "positioned": false
43
+ };
44
+
45
+ const compoundVariants = [
46
+ {
47
+ "positioned": false
48
+ },
49
+ {
50
+ "open": true,
51
+ "positioned": true
52
+ }
53
+ ];
54
+
55
+ export const menuVariantMap = {
56
+ "size": [
57
+ "medium",
58
+ "small"
59
+ ],
60
+ "open": [
61
+ true,
62
+ false
63
+ ],
64
+ "positioned": [
65
+ true,
66
+ false
67
+ ]
68
+ };
69
+
70
+ export const menuVariantKeys = Object.keys(menuVariantMap);
71
+
72
+ export function menu(props) {
73
+ return Object.fromEntries(
74
+ menuSlotNames.map(([slot, className]) => {
75
+ return [
76
+ slot,
77
+ createClassName(className, mergeVariants(defaultVariant, props), compoundVariants),
78
+ ];
79
+ }),
80
+ );
81
+ }
82
+
83
+ Object.assign(menu, { splitVariantProps: (props) => splitVariantProps(props, menuVariantMap) });
84
+
85
+ // @recipe(seed): menu