@seed-design/lynx-css 0.14.2 → 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 (92) hide show
  1. package/all.css +930 -253
  2. package/all.min.css +1 -1
  3. package/base.css +10 -0
  4. package/base.min.css +1 -1
  5. package/package.json +1 -1
  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/progress-circle.css +38 -4
  60. package/recipes/progress-circle.d.ts +1 -1
  61. package/recipes/progress-circle.mjs +1 -0
  62. package/recipes/pull-to-refresh.css +14 -0
  63. package/recipes/pull-to-refresh.d.ts +21 -0
  64. package/recipes/pull-to-refresh.mjs +40 -0
  65. package/recipes/reaction-button.css +0 -6
  66. package/recipes/reaction-button.d.ts +0 -4
  67. package/recipes/reaction-button.mjs +0 -11
  68. package/recipes/scroll-fog.css +4 -17
  69. package/recipes/scroll-fog.d.ts +1 -1
  70. package/recipes/scroll-fog.mjs +0 -8
  71. package/recipes/segmented-control.css +24 -14
  72. package/recipes/segmented-control.d.ts +4 -4
  73. package/recipes/segmented-control.mjs +8 -8
  74. package/recipes/select-box-checkmark.css +4 -7
  75. package/recipes/select-box.css +10 -4
  76. package/recipes/select-item.css +13 -2
  77. package/recipes/select-item.d.ts +1 -1
  78. package/recipes/select-item.mjs +4 -0
  79. package/recipes/select-trigger.css +13 -2
  80. package/recipes/select-trigger.d.ts +1 -1
  81. package/recipes/select-trigger.mjs +4 -0
  82. package/recipes/select.css +1 -13
  83. package/recipes/select.d.ts +1 -1
  84. package/recipes/select.mjs +0 -4
  85. package/recipes/slider-marker.css +2 -2
  86. package/recipes/slider-tick.css +1 -1
  87. package/recipes/slider.css +2 -5
  88. package/recipes/tabs.css +11 -11
  89. package/recipes/wheel-picker.css +151 -0
  90. package/recipes/wheel-picker.d.ts +32 -0
  91. package/recipes/wheel-picker.mjs +90 -0
  92. package/recipes/input-button.d.ts +0 -40
@@ -31,7 +31,7 @@ declare type SelectTriggerVariantMap = {
31
31
 
32
32
  export declare type SelectTriggerVariantProps = Partial<SelectTriggerVariant>;
33
33
 
34
- export declare type SelectTriggerSlotName = "root" | "pressedOverlay" | "value" | "placeholder" | "prefixIcon" | "suffixIcon";
34
+ export declare type SelectTriggerSlotName = "root" | "scaleContent" | "pressedOverlay" | "value" | "placeholder" | "prefixIcon" | "suffixIcon";
35
35
 
36
36
  export declare const selectTriggerVariantMap: SelectTriggerVariantMap;
37
37
 
@@ -6,6 +6,10 @@ const selectTriggerSlotNames = [
6
6
  "root",
7
7
  "seed-select-trigger__root"
8
8
  ],
9
+ [
10
+ "scaleContent",
11
+ "seed-select-trigger__scaleContent"
12
+ ],
9
13
  [
10
14
  "pressedOverlay",
11
15
  "seed-select-trigger__pressedOverlay"
@@ -1,17 +1,5 @@
1
1
  .seed-select__positioner {
2
- position: absolute;
3
- top: 0;
4
- left: 0;
5
- width: 100%;
6
- height: 100%;
7
- z-index: 0
8
- }
9
- .seed-select__backdrop {
10
- position: absolute;
11
- top: 0;
12
- right: 0;
13
- bottom: 0;
14
- left: 0
2
+ z-index: 99
15
3
  }
16
4
  .seed-select__content {
17
5
  position: absolute;
@@ -19,7 +19,7 @@ declare type SelectVariantMap = {
19
19
 
20
20
  export declare type SelectVariantProps = Partial<SelectVariant>;
21
21
 
22
- export declare type SelectSlotName = "positioner" | "backdrop" | "content" | "scrollArea" | "scrollContent" | "group" | "groupLabel" | "separator";
22
+ export declare type SelectSlotName = "positioner" | "content" | "scrollArea" | "scrollContent" | "group" | "groupLabel" | "separator";
23
23
 
24
24
  export declare const selectVariantMap: SelectVariantMap;
25
25
 
@@ -6,10 +6,6 @@ const selectSlotNames = [
6
6
  "positioner",
7
7
  "seed-select__positioner"
8
8
  ],
9
- [
10
- "backdrop",
11
- "seed-select__backdrop"
12
- ],
13
9
  [
14
10
  "content",
15
11
  "seed-select__content"
@@ -3,8 +3,8 @@
3
3
  top: 0;
4
4
  bottom: 0;
5
5
  width: max-content;
6
- left: calc(var(--slider-marker-left, 0%) + var(--slider-marker-offset, 0px));
7
- color: var(--slider-marker-color, var(--seed-color-fg-neutral-muted));
6
+ left: calc(var(--slider-marker-left, 0%) + var(--seed-dimension-x5) * var(--slider-marker-offset-ratio, 0));
7
+ color: var(--seed-color-fg-neutral-muted);
8
8
  font-weight: var(--seed-font-weight-regular);
9
9
  font-size: var(--seed-font-size-t3);
10
10
  line-height: var(--seed-line-height-t3)
@@ -2,7 +2,7 @@
2
2
  position: absolute;
3
3
  top: 50%;
4
4
  height: 100%;
5
- left: calc(var(--slider-tick-left, 0%) + var(--slider-tick-offset, 0px));
5
+ left: calc(var(--slider-tick-left, 0%) + var(--seed-dimension-x5) * var(--slider-tick-offset-ratio, 0));
6
6
  background-color: var(--seed-color-fg-on-neutral-solid);
7
7
  transform: translate(-50%, -50%)
8
8
  }
@@ -32,7 +32,7 @@
32
32
  .seed-slider__thumb {
33
33
  position: absolute;
34
34
  top: 50%;
35
- left: calc(var(--slider-thumb-left, 0%) + var(--slider-thumb-offset, 0px));
35
+ left: calc(var(--slider-thumb-left, 0%) + var(--seed-dimension-x5) * var(--slider-thumb-offset-ratio, 0));
36
36
  width: var(--seed-dimension-x5);
37
37
  height: var(--seed-dimension-x5);
38
38
  background-color: var(--seed-color-bg-neutral-solid);
@@ -51,6 +51,7 @@
51
51
  top: 50%;
52
52
  left: calc(var(--slider-value-indicator-left, 0%) + var(--slider-value-indicator-offset, 0px));
53
53
  width: max-content;
54
+ height: max-content;
54
55
  padding-top: 8px;
55
56
  padding-right: 8px;
56
57
  padding-bottom: 8px;
@@ -99,7 +100,6 @@
99
100
  line-height: var(--seed-line-height-t3);
100
101
  font-weight: var(--seed-font-weight-medium);
101
102
  flex-shrink: 0;
102
- white-space: nowrap;
103
103
  text-align: center
104
104
  }
105
105
  .seed-slider__track--disabled_true {
@@ -111,9 +111,6 @@
111
111
  .seed-slider__thumb--disabled_true {
112
112
  background-color: var(--seed-color-fg-disabled)
113
113
  }
114
- .seed-slider__markers--disabled_true {
115
- --slider-marker-color: var(--seed-color-fg-disabled)
116
- }
117
114
  .seed-slider__range--dragging_true {
118
115
  transition: none
119
116
  }
package/recipes/tabs.css CHANGED
@@ -3,10 +3,7 @@
3
3
  }
4
4
  .seed-tabs__list {
5
5
  position: relative;
6
- background-color: var(--seed-color-bg-layer-default);
7
- border-bottom-width: 1px;
8
- border-bottom-style: solid;
9
- border-bottom-color: var(--seed-color-stroke-neutral-muted)
6
+ background-color: var(--seed-color-bg-layer-default)
10
7
  }
11
8
  .seed-tabs__listContent {
12
9
  display: flex;
@@ -15,7 +12,9 @@
15
12
  flex-wrap: nowrap;
16
13
  align-items: stretch;
17
14
  width: max-content;
18
- min-width: 100%
15
+ min-width: 100%;
16
+ padding-bottom: 1px;
17
+ box-shadow: inset 0 -1px 0 0 var(--seed-color-stroke-neutral-muted)
19
18
  }
20
19
  .seed-tabs__carousel {
21
20
  display: flex;
@@ -34,9 +33,9 @@
34
33
  left: 0px;
35
34
  bottom: 0px;
36
35
  height: 2px;
37
- width: var(--tabs-indicator-width, 0px);
38
36
  background-color: var(--seed-color-fg-neutral);
39
- transform: translateX(var(--tabs-indicator-x, 0px));
37
+ box-sizing: border-box;
38
+ background-clip: content-box;
40
39
  transition-property: transform, width;
41
40
  transition-duration: var(--seed-duration-d4);
42
41
  transition-timing-function: var(--seed-timing-function-easing)
@@ -62,8 +61,8 @@
62
61
  padding-right: 0px
63
62
  }
64
63
  .seed-tabs__indicator--triggerLayout_fill {
65
- transform: translateX(calc(var(--tabs-indicator-x, 0px) + var(--seed-dimension-spacing-x-global-gutter)));
66
- width: calc(var(--tabs-indicator-width, 0px) - 2 * var(--seed-dimension-spacing-x-global-gutter))
64
+ padding-left: var(--seed-dimension-spacing-x-global-gutter);
65
+ padding-right: var(--seed-dimension-spacing-x-global-gutter)
67
66
  }
68
67
  .seed-tabs__trigger--triggerLayout_fill {
69
68
  flex: 1
@@ -73,8 +72,9 @@
73
72
  padding-right: var(--seed-dimension-spacing-x-global-gutter)
74
73
  }
75
74
  .seed-tabs__indicator--triggerLayout_hug {
76
- transform: translateX(calc(var(--tabs-indicator-x, 0px) + var(--seed-dimension-spacing-x-global-gutter) + 0px));
77
- width: calc(var(--tabs-indicator-width, 0px) - 2 * 0px)
75
+ left: var(--seed-dimension-spacing-x-global-gutter);
76
+ padding-left: 0px;
77
+ padding-right: 0px
78
78
  }
79
79
  .seed-tabs__root--contentLayout_fill {
80
80
  display: flex;
@@ -0,0 +1,151 @@
1
+ .seed-wheel-picker__root {
2
+ position: relative;
3
+ width: 100%;
4
+ z-index: 0;
5
+ overflow: hidden;
6
+ background-color: var(--seed-color-bg-layer-floating);
7
+ }
8
+ .seed-wheel-picker__scrollFog {
9
+ position: relative;
10
+ z-index: 1;
11
+ height: 100%;
12
+ overflow: hidden;
13
+ }
14
+ .seed-wheel-picker__columns {
15
+ display: flex;
16
+ flex-direction: row;
17
+ width: 100%;
18
+ height: 100%;
19
+ justify-content: center;
20
+ }
21
+ .seed-wheel-picker__column {
22
+ position: relative;
23
+ flex-shrink: 0;
24
+ width: max-content;
25
+ height: 100%;
26
+ }
27
+ .seed-wheel-picker__track {
28
+ color: var(--seed-color-fg-disabled);
29
+ }
30
+ .seed-wheel-picker__sizingContent {
31
+ display: flex;
32
+ flex-direction: column;
33
+ align-items: center;
34
+ width: max-content;
35
+ height: 0;
36
+ overflow: hidden;
37
+ opacity: 0;
38
+ pointer-events: none;
39
+ }
40
+ .seed-wheel-picker__item {
41
+ display: flex;
42
+ flex-direction: row;
43
+ height: 100%;
44
+ align-items: center;
45
+ justify-content: center;
46
+ color: var(--seed-color-fg-disabled);
47
+ }
48
+ .seed-wheel-picker__item text {
49
+ color: var(--seed-color-fg-disabled);
50
+ }
51
+ .seed-wheel-picker__itemLabel {
52
+ display: flex;
53
+ flex-direction: row;
54
+ flex-shrink: 0;
55
+ width: max-content;
56
+ height: 100%;
57
+ align-items: center;
58
+ justify-content: center;
59
+ padding-left: var(--seed-dimension-x4);
60
+ padding-right: var(--seed-dimension-x4);
61
+ font-weight: var(--seed-font-weight-medium);
62
+ color: var(--seed-color-fg-disabled);
63
+ }
64
+ .seed-wheel-picker__itemText {
65
+ font-weight: var(--seed-font-weight-medium);
66
+ color: var(--seed-color-fg-disabled);
67
+ }
68
+ .seed-wheel-picker__selectionIndicator {
69
+ position: absolute;
70
+ z-index: 0;
71
+ left: var(--seed-dimension-x4);
72
+ right: var(--seed-dimension-x4);
73
+ top: 50%;
74
+ transform: translateY(-50%);
75
+ border-radius: var(--seed-radius-r2);
76
+ background-color: var(--seed-color-bg-neutral-weak);
77
+ pointer-events: none;
78
+ }
79
+ .seed-wheel-picker__root--size_small {
80
+ height: var(--seed-wheel-picker-viewport-size, 180px);
81
+ }
82
+ .seed-wheel-picker__selectionIndicator--size_small {
83
+ height: var(--seed-wheel-picker-item-size, 36px);
84
+ }
85
+ .seed-wheel-picker__itemLabel--size_small {
86
+ font-size: var(--seed-font-size-t7-static);
87
+ line-height: var(--seed-line-height-t7-static);
88
+ }
89
+ .seed-wheel-picker__itemText--size_small {
90
+ font-size: var(--seed-font-size-t7-static);
91
+ line-height: var(--seed-line-height-t7-static);
92
+ }
93
+ .seed-wheel-picker__root--size_medium {
94
+ height: var(--seed-wheel-picker-viewport-size, 220px);
95
+ }
96
+ .seed-wheel-picker__selectionIndicator--size_medium {
97
+ height: var(--seed-wheel-picker-item-size, 44px);
98
+ }
99
+ .seed-wheel-picker__itemLabel--size_medium {
100
+ font-size: var(--seed-font-size-t10-static);
101
+ line-height: var(--seed-line-height-t10-static);
102
+ }
103
+ .seed-wheel-picker__itemText--size_medium {
104
+ font-size: var(--seed-font-size-t10-static);
105
+ line-height: var(--seed-line-height-t10-static);
106
+ }
107
+ .seed-wheel-picker__track--selected_true {
108
+ color: var(--seed-color-fg-neutral);
109
+ }
110
+ .seed-wheel-picker__item--selected_true {
111
+ color: var(--seed-color-fg-neutral);
112
+ }
113
+ .seed-wheel-picker__item--selected_true text {
114
+ color: var(--seed-color-fg-neutral);
115
+ }
116
+ .seed-wheel-picker__itemLabel--selected_true {
117
+ color: var(--seed-color-fg-neutral);
118
+ }
119
+ .seed-wheel-picker__itemText--selected_true {
120
+ color: var(--seed-color-fg-neutral);
121
+ }
122
+ .seed-wheel-picker__track--disabled_true {
123
+ color: var(--seed-color-fg-disabled);
124
+ }
125
+ .seed-wheel-picker__item--disabled_true {
126
+ color: var(--seed-color-fg-disabled);
127
+ }
128
+ .seed-wheel-picker__item--disabled_true text {
129
+ color: var(--seed-color-fg-disabled);
130
+ }
131
+ .seed-wheel-picker__itemLabel--disabled_true {
132
+ color: var(--seed-color-fg-disabled);
133
+ }
134
+ .seed-wheel-picker__itemText--disabled_true {
135
+ color: var(--seed-color-fg-disabled);
136
+ }
137
+ .seed-wheel-picker__track--selected_true-disabled_true {
138
+ color: var(--seed-color-fg-disabled);
139
+ }
140
+ .seed-wheel-picker__item--selected_true-disabled_true {
141
+ color: var(--seed-color-fg-disabled);
142
+ }
143
+ .seed-wheel-picker__item--selected_true-disabled_true text {
144
+ color: var(--seed-color-fg-disabled);
145
+ }
146
+ .seed-wheel-picker__itemLabel--selected_true-disabled_true {
147
+ color: var(--seed-color-fg-disabled);
148
+ }
149
+ .seed-wheel-picker__itemText--selected_true-disabled_true {
150
+ color: var(--seed-color-fg-disabled);
151
+ }
@@ -0,0 +1,32 @@
1
+ declare interface WheelPickerVariant {
2
+ /**
3
+ * @default "medium"
4
+ */
5
+ size: "small" | "medium";
6
+ /**
7
+ * @default false
8
+ */
9
+ selected: boolean;
10
+ /**
11
+ * @default false
12
+ */
13
+ disabled: boolean;
14
+ }
15
+
16
+ declare type WheelPickerVariantMap = {
17
+ [key in keyof WheelPickerVariant]: Array<WheelPickerVariant[key]>;
18
+ };
19
+
20
+ export declare type WheelPickerVariantProps = Partial<WheelPickerVariant>;
21
+
22
+ export declare type WheelPickerSlotName = "root" | "scrollFog" | "columns" | "column" | "track" | "sizingContent" | "item" | "itemLabel" | "itemText" | "selectionIndicator";
23
+
24
+ export declare const wheelPickerVariantMap: WheelPickerVariantMap;
25
+
26
+ export declare const wheelPicker: ((
27
+ props?: WheelPickerVariantProps,
28
+ ) => Record<WheelPickerSlotName, string>) & {
29
+ splitVariantProps: <T extends WheelPickerVariantProps>(
30
+ props: T,
31
+ ) => [WheelPickerVariantProps, Omit<T, keyof WheelPickerVariantProps>];
32
+ }
@@ -0,0 +1,90 @@
1
+ import './wheel-picker.css';
2
+ import { createClassName, mergeVariants, splitVariantProps } from "./shared.mjs";
3
+
4
+ const wheelPickerSlotNames = [
5
+ [
6
+ "root",
7
+ "seed-wheel-picker__root"
8
+ ],
9
+ [
10
+ "scrollFog",
11
+ "seed-wheel-picker__scrollFog"
12
+ ],
13
+ [
14
+ "columns",
15
+ "seed-wheel-picker__columns"
16
+ ],
17
+ [
18
+ "column",
19
+ "seed-wheel-picker__column"
20
+ ],
21
+ [
22
+ "track",
23
+ "seed-wheel-picker__track"
24
+ ],
25
+ [
26
+ "sizingContent",
27
+ "seed-wheel-picker__sizingContent"
28
+ ],
29
+ [
30
+ "item",
31
+ "seed-wheel-picker__item"
32
+ ],
33
+ [
34
+ "itemLabel",
35
+ "seed-wheel-picker__itemLabel"
36
+ ],
37
+ [
38
+ "itemText",
39
+ "seed-wheel-picker__itemText"
40
+ ],
41
+ [
42
+ "selectionIndicator",
43
+ "seed-wheel-picker__selectionIndicator"
44
+ ]
45
+ ];
46
+
47
+ const defaultVariant = {
48
+ "size": "medium",
49
+ "selected": false,
50
+ "disabled": false
51
+ };
52
+
53
+ const compoundVariants = [
54
+ {
55
+ "selected": true,
56
+ "disabled": true
57
+ }
58
+ ];
59
+
60
+ export const wheelPickerVariantMap = {
61
+ "size": [
62
+ "small",
63
+ "medium"
64
+ ],
65
+ "selected": [
66
+ true,
67
+ false
68
+ ],
69
+ "disabled": [
70
+ true,
71
+ false
72
+ ]
73
+ };
74
+
75
+ export const wheelPickerVariantKeys = Object.keys(wheelPickerVariantMap);
76
+
77
+ export function wheelPicker(props) {
78
+ return Object.fromEntries(
79
+ wheelPickerSlotNames.map(([slot, className]) => {
80
+ return [
81
+ slot,
82
+ createClassName(className, mergeVariants(defaultVariant, props), compoundVariants),
83
+ ];
84
+ }),
85
+ );
86
+ }
87
+
88
+ Object.assign(wheelPicker, { splitVariantProps: (props) => splitVariantProps(props, wheelPickerVariantMap) });
89
+
90
+ // @recipe(seed): wheel-picker
@@ -1,40 +0,0 @@
1
- declare interface InputButtonVariant {
2
- /**
3
- * @default "large"
4
- */
5
- size: "large" | "medium";
6
- /**
7
- * @default false
8
- */
9
- pressed: boolean;
10
- /**
11
- * @default false
12
- */
13
- invalid: boolean;
14
- /**
15
- * @default false
16
- */
17
- disabled: boolean;
18
- /**
19
- * @default false
20
- */
21
- readOnly: boolean;
22
- }
23
-
24
- declare type InputButtonVariantMap = {
25
- [key in keyof InputButtonVariant]: Array<InputButtonVariant[key]>;
26
- };
27
-
28
- export declare type InputButtonVariantProps = Partial<InputButtonVariant>;
29
-
30
- export declare type InputButtonSlotName = "root" | "button" | "content" | "baseStroke" | "stroke" | "value" | "placeholder" | "prefixText" | "prefixIcon" | "suffixText" | "suffixIcon" | "clearButton";
31
-
32
- export declare const inputButtonVariantMap: InputButtonVariantMap;
33
-
34
- export declare const inputButton: ((
35
- props?: InputButtonVariantProps,
36
- ) => Record<InputButtonSlotName, string>) & {
37
- splitVariantProps: <T extends InputButtonVariantProps>(
38
- props: T,
39
- ) => [InputButtonVariantProps, Omit<T, keyof InputButtonVariantProps>];
40
- }