@seed-design/lynx-css 0.14.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/all.css +936 -275
  2. package/all.min.css +1 -1
  3. package/base.css +10 -0
  4. package/base.min.css +1 -1
  5. package/package.json +2 -2
  6. package/recipes/alert-dialog.css +11 -0
  7. package/recipes/alert-dialog.d.ts +1 -1
  8. package/recipes/alert-dialog.mjs +8 -0
  9. package/recipes/app-bar.css +7 -3
  10. package/recipes/attachment-input-item.css +7 -0
  11. package/recipes/attachment-input.css +2 -1
  12. package/recipes/avatar-stack.css +69 -0
  13. package/recipes/avatar-stack.d.ts +24 -0
  14. package/recipes/avatar-stack.mjs +55 -0
  15. package/recipes/avatar.css +257 -0
  16. package/recipes/avatar.d.ts +28 -0
  17. package/recipes/avatar.mjs +82 -0
  18. package/recipes/badge.css +1 -9
  19. package/recipes/badge.d.ts +0 -4
  20. package/recipes/badge.mjs +1 -14
  21. package/recipes/bottom-sheet.css +33 -2
  22. package/recipes/bottom-sheet.d.ts +5 -1
  23. package/recipes/bottom-sheet.mjs +28 -2
  24. package/recipes/callout.css +1 -8
  25. package/recipes/checkbox.css +7 -1
  26. package/recipes/checkmark.css +17 -26
  27. package/recipes/checkmark.d.ts +1 -5
  28. package/recipes/checkmark.mjs +7 -60
  29. package/recipes/content-placeholder.css +29 -0
  30. package/recipes/content-placeholder.d.ts +21 -0
  31. package/recipes/content-placeholder.mjs +44 -0
  32. package/recipes/dialog.css +4 -2
  33. package/recipes/{input-button.css → field-button.css} +49 -49
  34. package/recipes/field-button.d.ts +40 -0
  35. package/recipes/{input-button.mjs → field-button.mjs} +20 -20
  36. package/recipes/floating-action-button.css +15 -8
  37. package/recipes/image-frame-icon.css +8 -0
  38. package/recipes/image-frame-icon.d.ts +19 -0
  39. package/recipes/image-frame-icon.mjs +22 -0
  40. package/recipes/image-frame-indicator.css +17 -0
  41. package/recipes/image-frame-indicator.d.ts +21 -0
  42. package/recipes/image-frame-indicator.mjs +36 -0
  43. package/recipes/image-frame-reaction-button.css +20 -0
  44. package/recipes/image-frame-reaction-button.d.ts +21 -0
  45. package/recipes/image-frame-reaction-button.mjs +40 -0
  46. package/recipes/image-frame.css +87 -0
  47. package/recipes/image-frame.d.ts +32 -0
  48. package/recipes/image-frame.mjs +72 -0
  49. package/recipes/list-item.css +0 -4
  50. package/recipes/list-item.d.ts +1 -1
  51. package/recipes/list-item.mjs +0 -4
  52. package/recipes/menu-sheet-item.css +5 -1
  53. package/recipes/menu-sheet.css +5 -0
  54. package/recipes/menu-sheet.d.ts +1 -1
  55. package/recipes/menu-sheet.mjs +4 -0
  56. package/recipes/menu.css +1 -13
  57. package/recipes/menu.d.ts +1 -1
  58. package/recipes/menu.mjs +0 -4
  59. package/recipes/page-banner.css +4 -4
  60. package/recipes/progress-circle.css +38 -4
  61. package/recipes/progress-circle.d.ts +1 -1
  62. package/recipes/progress-circle.mjs +1 -0
  63. package/recipes/pull-to-refresh.css +14 -0
  64. package/recipes/pull-to-refresh.d.ts +21 -0
  65. package/recipes/pull-to-refresh.mjs +40 -0
  66. package/recipes/reaction-button.css +0 -6
  67. package/recipes/reaction-button.d.ts +0 -4
  68. package/recipes/reaction-button.mjs +0 -11
  69. package/recipes/scroll-fog.css +4 -17
  70. package/recipes/scroll-fog.d.ts +1 -1
  71. package/recipes/scroll-fog.mjs +0 -8
  72. package/recipes/segmented-control.css +24 -14
  73. package/recipes/segmented-control.d.ts +4 -4
  74. package/recipes/segmented-control.mjs +8 -8
  75. package/recipes/select-box-checkmark.css +4 -7
  76. package/recipes/select-box.css +10 -4
  77. package/recipes/select-item.css +13 -2
  78. package/recipes/select-item.d.ts +1 -1
  79. package/recipes/select-item.mjs +4 -0
  80. package/recipes/select-trigger.css +13 -2
  81. package/recipes/select-trigger.d.ts +1 -1
  82. package/recipes/select-trigger.mjs +4 -0
  83. package/recipes/select.css +1 -13
  84. package/recipes/select.d.ts +1 -1
  85. package/recipes/select.mjs +0 -4
  86. package/recipes/slider-marker.css +2 -2
  87. package/recipes/slider-tick.css +1 -1
  88. package/recipes/slider.css +2 -5
  89. package/recipes/tabs.css +11 -11
  90. package/recipes/wheel-picker.css +151 -0
  91. package/recipes/wheel-picker.d.ts +32 -0
  92. package/recipes/wheel-picker.mjs +90 -0
  93. package/vars/component/alert-dialog.d.ts +2 -0
  94. package/vars/component/bottom-sheet.d.ts +3 -0
  95. package/vars/component/bottom-sheet.mjs +1 -0
  96. package/vars/component/dialog.d.ts +6 -2
  97. package/vars/component/help-bubble.d.ts +2 -1
  98. package/vars/component/menu-sheet.d.ts +5 -0
  99. package/vars/component/menu-sheet.mjs +1 -0
  100. package/vars/component/menu.d.ts +2 -1
  101. package/vars/component/page-banner-close-button.d.ts +4 -4
  102. package/vars/component/page-banner-close-button.mjs +4 -4
  103. package/vars/component/popover.d.ts +4 -4
  104. package/vars/component/select.d.ts +2 -1
  105. package/vars/component/side-panel.d.ts +10 -7
  106. package/vars/component/snackbar.d.ts +1 -0
  107. package/recipes/input-button.d.ts +0 -40
@@ -1,54 +1,54 @@
1
- import './input-button.css';
1
+ import './field-button.css';
2
2
  import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
3
3
 
4
- const inputButtonSlotNames = [
4
+ const fieldButtonSlotNames = [
5
5
  [
6
6
  "root",
7
- "seed-input-button__root"
7
+ "seed-field-button__root"
8
8
  ],
9
9
  [
10
10
  "button",
11
- "seed-input-button__button"
11
+ "seed-field-button__button"
12
12
  ],
13
13
  [
14
14
  "content",
15
- "seed-input-button__content"
15
+ "seed-field-button__content"
16
16
  ],
17
17
  [
18
18
  "baseStroke",
19
- "seed-input-button__baseStroke"
19
+ "seed-field-button__baseStroke"
20
20
  ],
21
21
  [
22
22
  "stroke",
23
- "seed-input-button__stroke"
23
+ "seed-field-button__stroke"
24
24
  ],
25
25
  [
26
26
  "value",
27
- "seed-input-button__value"
27
+ "seed-field-button__value"
28
28
  ],
29
29
  [
30
30
  "placeholder",
31
- "seed-input-button__placeholder"
31
+ "seed-field-button__placeholder"
32
32
  ],
33
33
  [
34
34
  "prefixText",
35
- "seed-input-button__prefixText"
35
+ "seed-field-button__prefixText"
36
36
  ],
37
37
  [
38
38
  "prefixIcon",
39
- "seed-input-button__prefixIcon"
39
+ "seed-field-button__prefixIcon"
40
40
  ],
41
41
  [
42
42
  "suffixText",
43
- "seed-input-button__suffixText"
43
+ "seed-field-button__suffixText"
44
44
  ],
45
45
  [
46
46
  "suffixIcon",
47
- "seed-input-button__suffixIcon"
47
+ "seed-field-button__suffixIcon"
48
48
  ],
49
49
  [
50
50
  "clearButton",
51
- "seed-input-button__clearButton"
51
+ "seed-field-button__clearButton"
52
52
  ]
53
53
  ];
54
54
 
@@ -67,7 +67,7 @@ const compoundVariants = [
67
67
  }
68
68
  ];
69
69
 
70
- export const inputButtonVariantMap = {
70
+ export const fieldButtonVariantMap = {
71
71
  "size": [
72
72
  "large",
73
73
  "medium"
@@ -90,11 +90,11 @@ export const inputButtonVariantMap = {
90
90
  ]
91
91
  };
92
92
 
93
- export const inputButtonVariantKeys = Object.keys(inputButtonVariantMap);
93
+ export const fieldButtonVariantKeys = Object.keys(fieldButtonVariantMap);
94
94
 
95
- export function inputButton(props) {
95
+ export function fieldButton(props) {
96
96
  return Object.fromEntries(
97
- inputButtonSlotNames.map(([slot, className]) => {
97
+ fieldButtonSlotNames.map(([slot, className]) => {
98
98
  return [
99
99
  slot,
100
100
  createClassName(className, mergeVariants(defaultVariant, props), compoundVariants),
@@ -103,6 +103,6 @@ export function inputButton(props) {
103
103
  );
104
104
  }
105
105
 
106
- Object.assign(inputButton, { splitVariantProps: (props) => splitVariantProps(props, inputButtonVariantMap) });
106
+ Object.assign(fieldButton, { splitVariantProps: (props) => splitVariantProps(props, fieldButtonVariantMap) });
107
107
 
108
- // @recipe(seed): input-button
108
+ // @recipe(seed): field-button
@@ -3,14 +3,15 @@
3
3
  display: flex;
4
4
  flex-direction: row;
5
5
  align-items: center;
6
- justify-content: center;
6
+ justify-content: flex-start;
7
7
  flex-shrink: 0;
8
8
  max-width: 100%;
9
9
  overflow: hidden;
10
+ gap: var(--seed-dimension-x1);
10
11
  background-color: var(--seed-color-bg-brand-solid);
11
12
  border-radius: var(--seed-radius-full);
12
13
  box-shadow: var(--seed-shadow-s3);
13
- transition: background-color var(--seed-duration-color-transition) var(--seed-timing-function-easing), width var(--seed-duration-d4) var(--seed-timing-function-easing), height var(--seed-duration-d4) var(--seed-timing-function-easing), padding-left var(--seed-duration-d4) var(--seed-timing-function-easing), padding-right var(--seed-duration-d4) var(--seed-timing-function-easing), gap var(--seed-duration-d4) var(--seed-timing-function-easing)
14
+ transition: background-color var(--seed-duration-color-transition) var(--seed-timing-function-easing), width var(--seed-duration-d4) var(--seed-timing-function-easing), height var(--seed-duration-d4) var(--seed-timing-function-easing), padding-left var(--seed-duration-d4) var(--seed-timing-function-easing), padding-right var(--seed-duration-d4) var(--seed-timing-function-easing)
14
15
  }
15
16
  .seed-floating-action-button__icon {
16
17
  flex-shrink: 0;
@@ -20,17 +21,18 @@
20
21
  .seed-floating-action-button__label {
21
22
  width: max-content;
22
23
  flex-shrink: 0;
24
+ white-space: nowrap;
23
25
  color: var(--seed-color-fg-on-brand-solid);
24
26
  font-size: var(--seed-font-size-t5);
25
27
  line-height: var(--seed-line-height-t5);
26
- font-weight: var(--seed-font-weight-bold)
28
+ font-weight: var(--seed-font-weight-bold);
29
+ transition: opacity var(--seed-duration-d4) var(--seed-timing-function-easing)
27
30
  }
28
31
  .seed-floating-action-button__root--extended_true {
29
32
  width: fit-content;
30
33
  height: 48px;
31
34
  padding-left: var(--seed-dimension-x4_5);
32
- padding-right: var(--seed-dimension-x4_5);
33
- gap: var(--seed-dimension-x1)
35
+ padding-right: var(--seed-dimension-x4_5)
34
36
  }
35
37
  .seed-floating-action-button__icon--extended_true {
36
38
  width: var(--seed-dimension-x4);
@@ -39,14 +41,16 @@
39
41
  .seed-floating-action-button__root--extended_false {
40
42
  width: 56px;
41
43
  height: 56px;
42
- padding-left: 0;
43
- padding-right: 0;
44
- gap: 0
44
+ padding-left: calc((56px - var(--seed-dimension-x6)) / 2);
45
+ padding-right: 0
45
46
  }
46
47
  .seed-floating-action-button__icon--extended_false {
47
48
  width: var(--seed-dimension-x6);
48
49
  height: var(--seed-dimension-x6)
49
50
  }
51
+ .seed-floating-action-button__label--extended_false {
52
+ opacity: 0
53
+ }
50
54
  .seed-floating-action-button__root--pressed_true {
51
55
  background-color: var(--seed-color-bg-brand-solid-pressed)
52
56
  }
@@ -56,6 +60,9 @@
56
60
  .seed-floating-action-button__icon--transitionEnabled_false {
57
61
  transition-duration: 0s
58
62
  }
63
+ .seed-floating-action-button__label--transitionEnabled_false {
64
+ transition-duration: 0s
65
+ }
59
66
  .seed-floating-action-button__root--extended_true-transitionEnabled_true {
60
67
  width: calc(var(--fab-label-width) + var(--seed-dimension-x4) + var(--seed-dimension-x1) + 2 * var(--seed-dimension-x4_5))
61
68
  }
@@ -0,0 +1,8 @@
1
+ .seed-image-frame-icon {
2
+ display: flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ color: var(--seed-color-palette-static-white);
6
+ width: 24px;
7
+ height: 24px
8
+ }
@@ -0,0 +1,19 @@
1
+ declare interface ImageFrameIconVariant {
2
+
3
+ }
4
+
5
+ declare type ImageFrameIconVariantMap = {
6
+ [key in keyof ImageFrameIconVariant]: Array<ImageFrameIconVariant[key]>;
7
+ };
8
+
9
+ export declare type ImageFrameIconVariantProps = Partial<ImageFrameIconVariant>;
10
+
11
+ export declare const imageFrameIconVariantMap: ImageFrameIconVariantMap;
12
+
13
+ export declare const imageFrameIcon: ((
14
+ props?: ImageFrameIconVariantProps,
15
+ ) => string) & {
16
+ splitVariantProps: <T extends ImageFrameIconVariantProps>(
17
+ props: T,
18
+ ) => [ImageFrameIconVariantProps, Omit<T, keyof ImageFrameIconVariantProps>];
19
+ }
@@ -0,0 +1,22 @@
1
+ import './image-frame-icon.css';
2
+ import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
3
+
4
+ const defaultVariant = {};
5
+
6
+ const compoundVariants = [];
7
+
8
+ export const imageFrameIconVariantMap = {};
9
+
10
+ export const imageFrameIconVariantKeys = Object.keys(imageFrameIconVariantMap);
11
+
12
+ export function imageFrameIcon(props) {
13
+ return createClassName(
14
+ "seed-image-frame-icon",
15
+ mergeVariants(defaultVariant, props),
16
+ compoundVariants,
17
+ );
18
+ }
19
+
20
+ Object.assign(imageFrameIcon, { splitVariantProps: (props) => splitVariantProps(props, imageFrameIconVariantMap) });
21
+
22
+ // @recipe(seed): image-frame-icon
@@ -0,0 +1,17 @@
1
+ .seed-image-frame-indicator__root {
2
+ display: flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ background-color: var(--seed-color-palette-static-black-alpha-800);
6
+ border-radius: var(--seed-radius-full);
7
+ padding-left: var(--seed-dimension-x1_5);
8
+ padding-right: var(--seed-dimension-x1_5);
9
+ padding-top: var(--seed-dimension-x0_5);
10
+ padding-bottom: var(--seed-dimension-x0_5)
11
+ }
12
+ .seed-image-frame-indicator__label {
13
+ color: var(--seed-color-palette-static-white);
14
+ font-size: var(--seed-font-size-t1);
15
+ line-height: var(--seed-line-height-t1);
16
+ font-weight: var(--seed-font-weight-medium)
17
+ }
@@ -0,0 +1,21 @@
1
+ declare interface ImageFrameIndicatorVariant {
2
+
3
+ }
4
+
5
+ declare type ImageFrameIndicatorVariantMap = {
6
+ [key in keyof ImageFrameIndicatorVariant]: Array<ImageFrameIndicatorVariant[key]>;
7
+ };
8
+
9
+ export declare type ImageFrameIndicatorVariantProps = Partial<ImageFrameIndicatorVariant>;
10
+
11
+ export declare type ImageFrameIndicatorSlotName = "root" | "label";
12
+
13
+ export declare const imageFrameIndicatorVariantMap: ImageFrameIndicatorVariantMap;
14
+
15
+ export declare const imageFrameIndicator: ((
16
+ props?: ImageFrameIndicatorVariantProps,
17
+ ) => Record<ImageFrameIndicatorSlotName, string>) & {
18
+ splitVariantProps: <T extends ImageFrameIndicatorVariantProps>(
19
+ props: T,
20
+ ) => [ImageFrameIndicatorVariantProps, Omit<T, keyof ImageFrameIndicatorVariantProps>];
21
+ }
@@ -0,0 +1,36 @@
1
+ import './image-frame-indicator.css';
2
+ import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
3
+
4
+ const imageFrameIndicatorSlotNames = [
5
+ [
6
+ "root",
7
+ "seed-image-frame-indicator__root"
8
+ ],
9
+ [
10
+ "label",
11
+ "seed-image-frame-indicator__label"
12
+ ]
13
+ ];
14
+
15
+ const defaultVariant = {};
16
+
17
+ const compoundVariants = [];
18
+
19
+ export const imageFrameIndicatorVariantMap = {};
20
+
21
+ export const imageFrameIndicatorVariantKeys = Object.keys(imageFrameIndicatorVariantMap);
22
+
23
+ export function imageFrameIndicator(props) {
24
+ return Object.fromEntries(
25
+ imageFrameIndicatorSlotNames.map(([slot, className]) => {
26
+ return [
27
+ slot,
28
+ createClassName(className, mergeVariants(defaultVariant, props), compoundVariants),
29
+ ];
30
+ }),
31
+ );
32
+ }
33
+
34
+ Object.assign(imageFrameIndicator, { splitVariantProps: (props) => splitVariantProps(props, imageFrameIndicatorVariantMap) });
35
+
36
+ // @recipe(seed): image-frame-indicator
@@ -0,0 +1,20 @@
1
+ .seed-image-frame-reaction-button__root {
2
+ display: flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ flex-shrink: 0;
6
+ position: relative;
7
+ width: var(--seed-dimension-x6);
8
+ height: var(--seed-dimension-x6);
9
+ background-color: transparent
10
+ }
11
+ .seed-image-frame-reaction-button__fillIcon {
12
+ width: var(--seed-dimension-x6);
13
+ height: var(--seed-dimension-x6);
14
+ pointer-events: none
15
+ }
16
+ .seed-image-frame-reaction-button__lineIcon {
17
+ width: var(--seed-dimension-x6);
18
+ height: var(--seed-dimension-x6);
19
+ pointer-events: none
20
+ }
@@ -0,0 +1,21 @@
1
+ declare interface ImageFrameReactionButtonVariant {
2
+
3
+ }
4
+
5
+ declare type ImageFrameReactionButtonVariantMap = {
6
+ [key in keyof ImageFrameReactionButtonVariant]: Array<ImageFrameReactionButtonVariant[key]>;
7
+ };
8
+
9
+ export declare type ImageFrameReactionButtonVariantProps = Partial<ImageFrameReactionButtonVariant>;
10
+
11
+ export declare type ImageFrameReactionButtonSlotName = "root" | "fillIcon" | "lineIcon";
12
+
13
+ export declare const imageFrameReactionButtonVariantMap: ImageFrameReactionButtonVariantMap;
14
+
15
+ export declare const imageFrameReactionButton: ((
16
+ props?: ImageFrameReactionButtonVariantProps,
17
+ ) => Record<ImageFrameReactionButtonSlotName, string>) & {
18
+ splitVariantProps: <T extends ImageFrameReactionButtonVariantProps>(
19
+ props: T,
20
+ ) => [ImageFrameReactionButtonVariantProps, Omit<T, keyof ImageFrameReactionButtonVariantProps>];
21
+ }
@@ -0,0 +1,40 @@
1
+ import './image-frame-reaction-button.css';
2
+ import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
3
+
4
+ const imageFrameReactionButtonSlotNames = [
5
+ [
6
+ "root",
7
+ "seed-image-frame-reaction-button__root"
8
+ ],
9
+ [
10
+ "fillIcon",
11
+ "seed-image-frame-reaction-button__fillIcon"
12
+ ],
13
+ [
14
+ "lineIcon",
15
+ "seed-image-frame-reaction-button__lineIcon"
16
+ ]
17
+ ];
18
+
19
+ const defaultVariant = {};
20
+
21
+ const compoundVariants = [];
22
+
23
+ export const imageFrameReactionButtonVariantMap = {};
24
+
25
+ export const imageFrameReactionButtonVariantKeys = Object.keys(imageFrameReactionButtonVariantMap);
26
+
27
+ export function imageFrameReactionButton(props) {
28
+ return Object.fromEntries(
29
+ imageFrameReactionButtonSlotNames.map(([slot, className]) => {
30
+ return [
31
+ slot,
32
+ createClassName(className, mergeVariants(defaultVariant, props), compoundVariants),
33
+ ];
34
+ }),
35
+ );
36
+ }
37
+
38
+ Object.assign(imageFrameReactionButton, { splitVariantProps: (props) => splitVariantProps(props, imageFrameReactionButtonVariantMap) });
39
+
40
+ // @recipe(seed): image-frame-reaction-button
@@ -0,0 +1,87 @@
1
+ .seed-image-frame__root {
2
+ position: relative;
3
+ overflow: hidden;
4
+ flex-shrink: 0;
5
+ aspect-ratio: var(--seed-image-frame-ratio)
6
+ }
7
+ .seed-image-frame__content {
8
+ position: absolute;
9
+ top: 0;
10
+ right: 0;
11
+ bottom: 0;
12
+ left: 0;
13
+ width: 100%;
14
+ height: 100%;
15
+ opacity: 0;
16
+ pointer-events: none
17
+ }
18
+ .seed-image-frame__fallback {
19
+ position: absolute;
20
+ top: 0;
21
+ right: 0;
22
+ bottom: 0;
23
+ left: 0
24
+ }
25
+ .seed-image-frame__stroke {
26
+ position: absolute;
27
+ top: 0;
28
+ right: 0;
29
+ bottom: 0;
30
+ left: 0;
31
+ border-radius: var(--seed-image-frame-radius);
32
+ pointer-events: none
33
+ }
34
+ .seed-image-frame__floater {
35
+ position: absolute;
36
+ display: flex
37
+ }
38
+ .seed-image-frame__stroke--stroke_true {
39
+ border-width: 1px;
40
+ border-style: solid;
41
+ border-color: var(--seed-color-stroke-neutral-subtle)
42
+ }
43
+ .seed-image-frame__content--loaded_true {
44
+ opacity: 1;
45
+ pointer-events: auto
46
+ }
47
+ .seed-image-frame__floater--placement_top-start {
48
+ top: var(--seed-image-frame-offset-y);
49
+ left: var(--seed-image-frame-offset-x)
50
+ }
51
+ .seed-image-frame__floater--placement_top-center {
52
+ top: var(--seed-image-frame-offset-y);
53
+ left: calc(50% + var(--seed-image-frame-offset-x));
54
+ transform: translateX(-50%)
55
+ }
56
+ .seed-image-frame__floater--placement_top-end {
57
+ top: var(--seed-image-frame-offset-y);
58
+ right: var(--seed-image-frame-offset-x)
59
+ }
60
+ .seed-image-frame__floater--placement_middle-start {
61
+ top: calc(50% + var(--seed-image-frame-offset-y));
62
+ left: var(--seed-image-frame-offset-x);
63
+ transform: translateY(-50%)
64
+ }
65
+ .seed-image-frame__floater--placement_middle-center {
66
+ top: calc(50% + var(--seed-image-frame-offset-y));
67
+ left: calc(50% + var(--seed-image-frame-offset-x));
68
+ transform: translate(-50%, -50%)
69
+ }
70
+ .seed-image-frame__floater--placement_middle-end {
71
+ top: calc(50% + var(--seed-image-frame-offset-y));
72
+ right: var(--seed-image-frame-offset-x);
73
+ transform: translateY(-50%)
74
+ }
75
+ .seed-image-frame__floater--placement_bottom-start {
76
+ bottom: var(--seed-image-frame-offset-y);
77
+ left: var(--seed-image-frame-offset-x)
78
+ }
79
+ .seed-image-frame__floater--placement_bottom-center {
80
+ bottom: var(--seed-image-frame-offset-y);
81
+ left: calc(50% + var(--seed-image-frame-offset-x));
82
+ transform: translateX(-50%)
83
+ }
84
+ .seed-image-frame__floater--placement_bottom-end {
85
+ bottom: var(--seed-image-frame-offset-y);
86
+ right: var(--seed-image-frame-offset-x)
87
+ }
@@ -0,0 +1,32 @@
1
+ declare interface ImageFrameVariant {
2
+ /**
3
+ * @default false
4
+ */
5
+ stroke: boolean;
6
+ /**
7
+ * @default false
8
+ */
9
+ loaded: boolean;
10
+ /**
11
+ * @default "bottom-end"
12
+ */
13
+ placement: "top-start" | "top-center" | "top-end" | "middle-start" | "middle-center" | "middle-end" | "bottom-start" | "bottom-center" | "bottom-end";
14
+ }
15
+
16
+ declare type ImageFrameVariantMap = {
17
+ [key in keyof ImageFrameVariant]: Array<ImageFrameVariant[key]>;
18
+ };
19
+
20
+ export declare type ImageFrameVariantProps = Partial<ImageFrameVariant>;
21
+
22
+ export declare type ImageFrameSlotName = "root" | "content" | "fallback" | "stroke" | "floater";
23
+
24
+ export declare const imageFrameVariantMap: ImageFrameVariantMap;
25
+
26
+ export declare const imageFrame: ((
27
+ props?: ImageFrameVariantProps,
28
+ ) => Record<ImageFrameSlotName, string>) & {
29
+ splitVariantProps: <T extends ImageFrameVariantProps>(
30
+ props: T,
31
+ ) => [ImageFrameVariantProps, Omit<T, keyof ImageFrameVariantProps>];
32
+ }
@@ -0,0 +1,72 @@
1
+ import './image-frame.css';
2
+ import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
3
+
4
+ const imageFrameSlotNames = [
5
+ [
6
+ "root",
7
+ "seed-image-frame__root"
8
+ ],
9
+ [
10
+ "content",
11
+ "seed-image-frame__content"
12
+ ],
13
+ [
14
+ "fallback",
15
+ "seed-image-frame__fallback"
16
+ ],
17
+ [
18
+ "stroke",
19
+ "seed-image-frame__stroke"
20
+ ],
21
+ [
22
+ "floater",
23
+ "seed-image-frame__floater"
24
+ ]
25
+ ];
26
+
27
+ const defaultVariant = {
28
+ "stroke": false,
29
+ "loaded": false,
30
+ "placement": "bottom-end"
31
+ };
32
+
33
+ const compoundVariants = [];
34
+
35
+ export const imageFrameVariantMap = {
36
+ "stroke": [
37
+ true,
38
+ false
39
+ ],
40
+ "loaded": [
41
+ true,
42
+ false
43
+ ],
44
+ "placement": [
45
+ "top-start",
46
+ "top-center",
47
+ "top-end",
48
+ "middle-start",
49
+ "middle-center",
50
+ "middle-end",
51
+ "bottom-start",
52
+ "bottom-center",
53
+ "bottom-end"
54
+ ]
55
+ };
56
+
57
+ export const imageFrameVariantKeys = Object.keys(imageFrameVariantMap);
58
+
59
+ export function imageFrame(props) {
60
+ return Object.fromEntries(
61
+ imageFrameSlotNames.map(([slot, className]) => {
62
+ return [
63
+ slot,
64
+ createClassName(className, mergeVariants(defaultVariant, props), compoundVariants),
65
+ ];
66
+ }),
67
+ );
68
+ }
69
+
70
+ Object.assign(imageFrame, { splitVariantProps: (props) => splitVariantProps(props, imageFrameVariantMap) });
71
+
72
+ // @recipe(seed): image-frame
@@ -1,7 +1,3 @@
1
- .seed-list-item__interactionRoot {
2
- display: flex;
3
- width: 100%
4
- }
5
1
  .seed-list-item__root {
6
2
  position: relative;
7
3
  display: flex;
@@ -23,7 +23,7 @@ declare type ListItemVariantMap = {
23
23
 
24
24
  export declare type ListItemVariantProps = Partial<ListItemVariant>;
25
25
 
26
- export declare type ListItemSlotName = "interactionRoot" | "root" | "highlightedOverlay" | "pressedOverlay" | "layout" | "content" | "title" | "detail" | "prefix" | "suffix" | "prefixIcon" | "suffixIcon";
26
+ export declare type ListItemSlotName = "root" | "highlightedOverlay" | "pressedOverlay" | "layout" | "content" | "title" | "detail" | "prefix" | "suffix" | "prefixIcon" | "suffixIcon";
27
27
 
28
28
  export declare const listItemVariantMap: ListItemVariantMap;
29
29
 
@@ -2,10 +2,6 @@ import './list-item.css';
2
2
  import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
3
3
 
4
4
  const listItemSlotNames = [
5
- [
6
- "interactionRoot",
7
- "seed-list-item__interactionRoot"
8
- ],
9
5
  [
10
6
  "root",
11
7
  "seed-list-item__root"
@@ -3,6 +3,7 @@
3
3
  flex-direction: row;
4
4
  align-items: center;
5
5
  justify-content: flex-start;
6
+ position: relative;
6
7
  width: 100%;
7
8
  min-height: 52px;
8
9
  padding-top: var(--seed-dimension-x3_5);
@@ -48,7 +49,10 @@
48
49
  height: 22px;
49
50
  }
50
51
  .seed-menu-sheet-item__divider {
51
- width: 100%;
52
+ position: absolute;
53
+ right: 0;
54
+ bottom: 0;
55
+ left: 0;
52
56
  height: 1px;
53
57
  background-color: var(--seed-color-stroke-neutral-muted);
54
58
  }
@@ -45,6 +45,7 @@
45
45
  flex-direction: column;
46
46
  align-items: center;
47
47
  text-align: center;
48
+ flex-shrink: 0;
48
49
  gap: var(--seed-dimension-x1);
49
50
  padding-bottom: var(--seed-dimension-x4);
50
51
  }
@@ -63,6 +64,9 @@
63
64
  margin: 0;
64
65
  }
65
66
  .seed-menu-sheet__list {
67
+ flex-shrink: 1;
68
+ }
69
+ .seed-menu-sheet__listContent {
66
70
  display: flex;
67
71
  flex-direction: column;
68
72
  align-items: stretch;
@@ -79,6 +83,7 @@
79
83
  display: flex;
80
84
  flex-direction: column;
81
85
  align-items: stretch;
86
+ flex-shrink: 0;
82
87
  padding-top: var(--seed-dimension-x2_5);
83
88
  }
84
89
  .seed-menu-sheet__closeButton {
@@ -15,7 +15,7 @@ declare type MenuSheetVariantMap = {
15
15
 
16
16
  export declare type MenuSheetVariantProps = Partial<MenuSheetVariant>;
17
17
 
18
- export declare type MenuSheetSlotName = "positioner" | "backdrop" | "content" | "contentInner" | "header" | "title" | "description" | "list" | "group" | "footer" | "closeButton" | "closeButtonLabel";
18
+ export declare type MenuSheetSlotName = "positioner" | "backdrop" | "content" | "contentInner" | "header" | "title" | "description" | "list" | "listContent" | "group" | "footer" | "closeButton" | "closeButtonLabel";
19
19
 
20
20
  export declare const menuSheetVariantMap: MenuSheetVariantMap;
21
21
 
@@ -34,6 +34,10 @@ const menuSheetSlotNames = [
34
34
  "list",
35
35
  "seed-menu-sheet__list"
36
36
  ],
37
+ [
38
+ "listContent",
39
+ "seed-menu-sheet__listContent"
40
+ ],
37
41
  [
38
42
  "group",
39
43
  "seed-menu-sheet__group"