@revikornmann/muka-ui 0.17.0 → 0.19.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 (182) hide show
  1. package/README.md +81 -60
  2. package/cli/bin/muka-ui.js +12 -5
  3. package/cli/commands/brand.js +33 -14
  4. package/cli/commands/init.js +21 -17
  5. package/cli/commands/install-skill.js +84 -26
  6. package/cli/templates/AGENTS.md +128 -0
  7. package/cli/templates/CLAUDE.md +8 -88
  8. package/cli/templates/muka-ui-guidelines.md +50 -14
  9. package/dist/cjs/components/ActionSheet/ActionSheet.js +1 -1
  10. package/dist/cjs/components/Breadcrumb/Breadcrumb.css +11 -3
  11. package/dist/cjs/components/Breadcrumb/Breadcrumb.js +19 -1
  12. package/dist/cjs/components/Breadcrumb/Breadcrumb.js.map +1 -1
  13. package/dist/cjs/components/Combobox/Combobox.css +116 -132
  14. package/dist/cjs/components/Combobox/Combobox.js +175 -52
  15. package/dist/cjs/components/Combobox/Combobox.js.map +1 -1
  16. package/dist/cjs/components/Combobox/index.js.map +1 -1
  17. package/dist/cjs/components/ContextSelect/ContextSelect.css +117 -0
  18. package/dist/cjs/components/ContextSelect/ContextSelect.js +49 -0
  19. package/dist/cjs/components/ContextSelect/ContextSelect.js.map +1 -0
  20. package/dist/cjs/components/ContextSelect/index.js +11 -0
  21. package/dist/cjs/components/ContextSelect/index.js.map +1 -0
  22. package/dist/cjs/components/DropdownSelect/DropdownSelect.css +225 -0
  23. package/dist/cjs/components/DropdownSelect/DropdownSelect.js +106 -0
  24. package/dist/cjs/components/DropdownSelect/DropdownSelect.js.map +1 -0
  25. package/dist/cjs/components/DropdownSelect/index.js +6 -0
  26. package/dist/cjs/components/DropdownSelect/index.js.map +1 -0
  27. package/dist/cjs/components/Icon/custom/ArrowDropUpDownIcon.js +11 -0
  28. package/dist/cjs/components/Icon/custom/ArrowDropUpDownIcon.js.map +1 -0
  29. package/dist/cjs/components/Icon/custom/ArrowReturnIcon.js +11 -0
  30. package/dist/cjs/components/Icon/custom/ArrowReturnIcon.js.map +1 -0
  31. package/dist/cjs/components/Icon/iconRegistry.js +11 -0
  32. package/dist/cjs/components/Icon/iconRegistry.js.map +1 -1
  33. package/dist/cjs/components/Input/Input.css +45 -8
  34. package/dist/cjs/components/Input/Input.js +14 -3
  35. package/dist/cjs/components/Input/Input.js.map +1 -1
  36. package/dist/cjs/components/Menu/Menu.css +213 -17
  37. package/dist/cjs/components/Menu/Menu.js +429 -39
  38. package/dist/cjs/components/Menu/Menu.js.map +1 -1
  39. package/dist/cjs/components/Menu/index.js +5 -1
  40. package/dist/cjs/components/Menu/index.js.map +1 -1
  41. package/dist/cjs/components/ProgressTracker/ProgressTracker.css +273 -22
  42. package/dist/cjs/components/ProgressTracker/ProgressTracker.js +109 -9
  43. package/dist/cjs/components/ProgressTracker/ProgressTracker.js.map +1 -1
  44. package/dist/cjs/components/Scrollbar/Scrollbar.css +124 -0
  45. package/dist/cjs/components/Scrollbar/Scrollbar.js +118 -0
  46. package/dist/cjs/components/Scrollbar/Scrollbar.js.map +1 -0
  47. package/dist/cjs/components/Scrollbar/index.js +11 -0
  48. package/dist/cjs/components/Scrollbar/index.js.map +1 -0
  49. package/dist/cjs/components/index.js +13 -16
  50. package/dist/cjs/components/index.js.map +1 -1
  51. package/dist/esm/components/ActionSheet/ActionSheet.js +1 -1
  52. package/dist/esm/components/Breadcrumb/Breadcrumb.css +11 -3
  53. package/dist/esm/components/Breadcrumb/Breadcrumb.js +19 -1
  54. package/dist/esm/components/Breadcrumb/Breadcrumb.js.map +1 -1
  55. package/dist/esm/components/Combobox/Combobox.css +116 -132
  56. package/dist/esm/components/Combobox/Combobox.js +177 -54
  57. package/dist/esm/components/Combobox/Combobox.js.map +1 -1
  58. package/dist/esm/components/Combobox/index.js +1 -1
  59. package/dist/esm/components/Combobox/index.js.map +1 -1
  60. package/dist/esm/components/ContextSelect/ContextSelect.css +117 -0
  61. package/dist/esm/components/ContextSelect/ContextSelect.js +45 -0
  62. package/dist/esm/components/ContextSelect/ContextSelect.js.map +1 -0
  63. package/dist/esm/components/ContextSelect/index.js +3 -0
  64. package/dist/esm/components/ContextSelect/index.js.map +1 -0
  65. package/dist/esm/components/DropdownSelect/DropdownSelect.css +225 -0
  66. package/dist/esm/components/DropdownSelect/DropdownSelect.js +102 -0
  67. package/dist/esm/components/DropdownSelect/DropdownSelect.js.map +1 -0
  68. package/dist/esm/components/DropdownSelect/index.js +2 -0
  69. package/dist/esm/components/DropdownSelect/index.js.map +1 -0
  70. package/dist/esm/components/Icon/custom/ArrowDropUpDownIcon.js +7 -0
  71. package/dist/esm/components/Icon/custom/ArrowDropUpDownIcon.js.map +1 -0
  72. package/dist/esm/components/Icon/custom/ArrowReturnIcon.js +7 -0
  73. package/dist/esm/components/Icon/custom/ArrowReturnIcon.js.map +1 -0
  74. package/dist/esm/components/Icon/iconRegistry.js +11 -0
  75. package/dist/esm/components/Icon/iconRegistry.js.map +1 -1
  76. package/dist/esm/components/Input/Input.css +45 -8
  77. package/dist/esm/components/Input/Input.js +14 -3
  78. package/dist/esm/components/Input/Input.js.map +1 -1
  79. package/dist/esm/components/Menu/Menu.css +213 -17
  80. package/dist/esm/components/Menu/Menu.js +428 -40
  81. package/dist/esm/components/Menu/Menu.js.map +1 -1
  82. package/dist/esm/components/Menu/index.js +1 -1
  83. package/dist/esm/components/Menu/index.js.map +1 -1
  84. package/dist/esm/components/ProgressTracker/ProgressTracker.css +273 -22
  85. package/dist/esm/components/ProgressTracker/ProgressTracker.js +110 -10
  86. package/dist/esm/components/ProgressTracker/ProgressTracker.js.map +1 -1
  87. package/dist/esm/components/Scrollbar/Scrollbar.css +124 -0
  88. package/dist/esm/components/Scrollbar/Scrollbar.js +114 -0
  89. package/dist/esm/components/Scrollbar/Scrollbar.js.map +1 -0
  90. package/dist/esm/components/Scrollbar/index.js +3 -0
  91. package/dist/esm/components/Scrollbar/index.js.map +1 -0
  92. package/dist/esm/components/index.js +4 -2
  93. package/dist/esm/components/index.js.map +1 -1
  94. package/dist/styles/components/Breadcrumb.css +11 -3
  95. package/dist/styles/components/Combobox.css +116 -132
  96. package/dist/styles/components/ContextSelect.css +117 -0
  97. package/dist/styles/components/DropdownSelect.css +225 -0
  98. package/dist/styles/components/Input.css +45 -8
  99. package/dist/styles/components/Menu.css +213 -17
  100. package/dist/styles/components/ProgressTracker.css +273 -22
  101. package/dist/styles/components/Scrollbar.css +124 -0
  102. package/dist/styles/components/Typography.css +89 -0
  103. package/dist/styles/index.css +1526 -480
  104. package/dist/styles/muka-dark.css +1526 -480
  105. package/dist/styles/muka-light.css +1526 -480
  106. package/dist/styles/tokens-bouwplan-dark.css +9 -6
  107. package/dist/styles/tokens-bouwplan-light.css +9 -6
  108. package/dist/styles/tokens-fscl-dark.css +29 -26
  109. package/dist/styles/tokens-fscl-light.css +29 -26
  110. package/dist/styles/tokens-grip-dark.css +8 -5
  111. package/dist/styles/tokens-grip-light.css +8 -5
  112. package/dist/styles/tokens-muka-dark.css +8 -5
  113. package/dist/styles/tokens-muka-light.css +8 -5
  114. package/dist/styles/tokens-wireframe-dark.css +53 -50
  115. package/dist/styles/tokens-wireframe-light.css +53 -50
  116. package/dist/styles/wireframe-dark.css +1571 -525
  117. package/dist/styles/wireframe-light.css +1571 -525
  118. package/dist/types/components/ActionSheet/ActionSheet.d.ts +1 -1
  119. package/dist/types/components/Breadcrumb/Breadcrumb.d.ts +27 -3
  120. package/dist/types/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  121. package/dist/types/components/Combobox/Combobox.d.ts +38 -38
  122. package/dist/types/components/Combobox/Combobox.d.ts.map +1 -1
  123. package/dist/types/components/Combobox/index.d.ts +1 -1
  124. package/dist/types/components/Combobox/index.d.ts.map +1 -1
  125. package/dist/types/components/ContextSelect/ContextSelect.d.ts +62 -0
  126. package/dist/types/components/ContextSelect/ContextSelect.d.ts.map +1 -0
  127. package/dist/types/components/ContextSelect/index.d.ts +3 -0
  128. package/dist/types/components/ContextSelect/index.d.ts.map +1 -0
  129. package/dist/types/components/DataTable/DataTable.d.ts +1 -1
  130. package/dist/types/components/DropdownSelect/DropdownSelect.d.ts +71 -0
  131. package/dist/types/components/DropdownSelect/DropdownSelect.d.ts.map +1 -0
  132. package/dist/types/components/DropdownSelect/index.d.ts +2 -0
  133. package/dist/types/components/DropdownSelect/index.d.ts.map +1 -0
  134. package/dist/types/components/Icon/custom/ArrowDropUpDownIcon.d.ts +9 -0
  135. package/dist/types/components/Icon/custom/ArrowDropUpDownIcon.d.ts.map +1 -0
  136. package/dist/types/components/Icon/custom/ArrowReturnIcon.d.ts +9 -0
  137. package/dist/types/components/Icon/custom/ArrowReturnIcon.d.ts.map +1 -0
  138. package/dist/types/components/Icon/iconRegistry.d.ts.map +1 -1
  139. package/dist/types/components/Input/Input.d.ts +5 -0
  140. package/dist/types/components/Input/Input.d.ts.map +1 -1
  141. package/dist/types/components/Menu/Menu.d.ts +99 -29
  142. package/dist/types/components/Menu/Menu.d.ts.map +1 -1
  143. package/dist/types/components/Menu/index.d.ts +2 -2
  144. package/dist/types/components/Menu/index.d.ts.map +1 -1
  145. package/dist/types/components/ProgressTracker/ProgressTracker.d.ts +29 -8
  146. package/dist/types/components/ProgressTracker/ProgressTracker.d.ts.map +1 -1
  147. package/dist/types/components/Scrollbar/Scrollbar.d.ts +19 -0
  148. package/dist/types/components/Scrollbar/Scrollbar.d.ts.map +1 -0
  149. package/dist/types/components/Scrollbar/index.d.ts +3 -0
  150. package/dist/types/components/Scrollbar/index.d.ts.map +1 -0
  151. package/dist/types/components/index.d.ts +5 -4
  152. package/dist/types/components/index.d.ts.map +1 -1
  153. package/docs/consumers/README.md +116 -37
  154. package/docs/consumers/brand.md +261 -0
  155. package/docs/consumers/figma-console-mcp.md +116 -0
  156. package/docs/consumers/setup-instructions.md +98 -12
  157. package/docs/consumers/skills.md +79 -0
  158. package/package.json +4 -6
  159. package/scripts/postinstall-nudge.js +8 -4
  160. package/skills/add-brand/SKILL.md +204 -0
  161. package/skills/add-brand/reference.md +160 -0
  162. package/skills/figma-to-code/SKILL.md +127 -0
  163. package/skills/pull-from-figma/SKILL.md +123 -0
  164. package/skills/push-to-figma/SKILL.md +172 -0
  165. package/skills/setup-muka/SKILL.md +73 -13
  166. package/tokens/README.md +40 -18
  167. package/tokens/t2-alias/brand/bouwplan/fonts.json +1 -1
  168. package/tokens/t2-alias/brand/fscl/fonts.json +3 -3
  169. package/tokens/t2-alias/brand/wireframe/fonts.json +2 -2
  170. package/tokens/t4-components/menu.json +20 -5
  171. package/dist/cjs/components/ContextMenu/ContextMenu.js +0 -186
  172. package/dist/cjs/components/ContextMenu/ContextMenu.js.map +0 -1
  173. package/dist/cjs/components/ContextMenu/index.js +0 -17
  174. package/dist/cjs/components/ContextMenu/index.js.map +0 -1
  175. package/dist/esm/components/ContextMenu/ContextMenu.js +0 -145
  176. package/dist/esm/components/ContextMenu/ContextMenu.js.map +0 -1
  177. package/dist/esm/components/ContextMenu/index.js +0 -2
  178. package/dist/esm/components/ContextMenu/index.js.map +0 -1
  179. package/dist/types/components/ContextMenu/ContextMenu.d.ts +0 -188
  180. package/dist/types/components/ContextMenu/ContextMenu.d.ts.map +0 -1
  181. package/dist/types/components/ContextMenu/index.d.ts +0 -3
  182. package/dist/types/components/ContextMenu/index.d.ts.map +0 -1
@@ -0,0 +1,117 @@
1
+ /* ContextSelect — split label (navigate) + chevron menu button (switch)
2
+ *
3
+ * Figma (5623:8651 / 5631:9344):
4
+ * - Root: gap spacing/1 (4px) between label group and chevron
5
+ * - Label group: gap spacing/2 (8px) icon↔label, pl spacing/2 (8px)
6
+ * - Icons: 16px (icon.size.xs)
7
+ */
8
+
9
+ .muka-context-select {
10
+ display: inline-flex;
11
+ position: relative;
12
+ align-items: flex-start;
13
+ gap: var(--spacing-1, 4px);
14
+ }
15
+
16
+ .muka-context-select__label-group {
17
+ display: inline-flex;
18
+ align-items: center;
19
+ gap: var(--spacing-2, 8px);
20
+ height: var(--size-2xl, 32px);
21
+ padding-left: var(--spacing-2, 8px);
22
+ padding-right: 0;
23
+ border-radius: var(--border-radius-lg);
24
+ color: var(--color-text-default-default);
25
+ text-decoration: none;
26
+ border: none;
27
+ background: transparent;
28
+ font: inherit;
29
+ cursor: default;
30
+ }
31
+
32
+ .muka-context-select__label-group--link,
33
+ .muka-context-select__label-group--button {
34
+ cursor: pointer;
35
+ }
36
+
37
+ .muka-context-select__label-group--link:hover .muka-context-select__label,
38
+ .muka-context-select__label-group--button:hover .muka-context-select__label,
39
+ .muka-context-select__label-group--link:focus-visible .muka-context-select__label,
40
+ .muka-context-select__label-group--button:focus-visible .muka-context-select__label {
41
+ text-decoration: underline;
42
+ text-underline-offset: 2px;
43
+ }
44
+
45
+ .muka-context-select__label-group--link:focus-visible,
46
+ .muka-context-select__label-group--button:focus-visible {
47
+ outline: 2px solid var(--color-border-focus);
48
+ outline-offset: 2px;
49
+ }
50
+
51
+ .muka-context-select__label-group--button:disabled,
52
+ .muka-context-select__label-group--link[aria-disabled='true'] {
53
+ cursor: not-allowed;
54
+ opacity: 0.5;
55
+ pointer-events: none;
56
+ }
57
+
58
+ .muka-context-select__icon {
59
+ display: inline-flex;
60
+ flex-shrink: 0;
61
+ align-items: center;
62
+ justify-content: center;
63
+ width: var(--icon-size-xs, 16px);
64
+ height: var(--icon-size-xs, 16px);
65
+ color: var(--color-text-default-default);
66
+ }
67
+
68
+ .muka-context-select__icon .muka-icon {
69
+ width: var(--icon-size-xs, 16px);
70
+ height: var(--icon-size-xs, 16px);
71
+ }
72
+
73
+ .muka-context-select__label {
74
+ font-family: var(--text-label-sm-regular-font-family);
75
+ font-size: var(--text-label-sm-regular-font-size);
76
+ font-weight: var(--text-label-sm-regular-font-weight);
77
+ line-height: var(--text-label-sm-regular-line-height);
78
+ white-space: nowrap;
79
+ }
80
+
81
+ .muka-context-select__menu-button {
82
+ position: relative;
83
+ display: inline-flex;
84
+ flex-shrink: 0;
85
+ align-items: center;
86
+ justify-content: center;
87
+ width: var(--size-2xl, 32px);
88
+ height: var(--size-2xl, 32px);
89
+ margin: 0;
90
+ padding: 0;
91
+ border: none;
92
+ border-radius: var(--border-radius-lg);
93
+ background: transparent;
94
+ color: var(--color-text-default-default);
95
+ cursor: pointer;
96
+ }
97
+
98
+ .muka-context-select__menu-button:hover,
99
+ .muka-context-select__menu-button:focus-visible,
100
+ .muka-context-select__menu-button[data-state='open'],
101
+ .muka-context-select--expanded .muka-context-select__menu-button {
102
+ border: var(--border-width-regular) solid var(--color-border-default);
103
+ }
104
+
105
+ .muka-context-select__menu-button:focus-visible {
106
+ outline: 2px solid var(--color-border-focus);
107
+ outline-offset: 2px;
108
+ }
109
+
110
+ .muka-context-select__menu-button:disabled {
111
+ cursor: not-allowed;
112
+ opacity: 0.5;
113
+ }
114
+
115
+ .muka-context-select__content {
116
+ min-width: 17.5rem;
117
+ }
@@ -0,0 +1,225 @@
1
+ /* DropdownSelect — Figma Dropdown Menu form field (Menu + chips) */
2
+
3
+ .muka-dropdown-select {
4
+ display: inline-flex;
5
+ flex-direction: column;
6
+ gap: var(--spacing-2);
7
+ min-width: 200px;
8
+ }
9
+
10
+ .muka-dropdown-select--full-width {
11
+ width: 100%;
12
+ }
13
+
14
+ .muka-dropdown-select__label {
15
+ color: var(--color-text-default-default);
16
+ cursor: pointer;
17
+ }
18
+
19
+ .muka-dropdown-select__label--sm {
20
+ font-family: var(--text-label-sm-semibold-fontFamily);
21
+ font-weight: var(--text-label-sm-semibold-fontWeight);
22
+ font-size: var(--text-label-sm-semibold-fontSize);
23
+ line-height: var(--text-label-sm-semibold-lineHeight);
24
+ }
25
+
26
+ .muka-dropdown-select__label--md {
27
+ font-family: var(--text-label-md-semibold-fontFamily);
28
+ font-weight: var(--text-label-md-semibold-fontWeight);
29
+ font-size: var(--text-label-md-semibold-fontSize);
30
+ line-height: var(--text-label-md-semibold-lineHeight);
31
+ }
32
+
33
+ .muka-dropdown-select__label--lg {
34
+ font-family: var(--text-label-lg-semibold-fontFamily);
35
+ font-weight: var(--text-label-lg-semibold-fontWeight);
36
+ font-size: var(--text-label-lg-semibold-fontSize);
37
+ line-height: var(--text-label-lg-semibold-lineHeight);
38
+ }
39
+
40
+ .muka-dropdown-select__required {
41
+ color: var(--color-state-error-foreground);
42
+ }
43
+
44
+ .muka-dropdown-select__field {
45
+ display: flex;
46
+ align-items: center;
47
+ gap: var(--spacing-1);
48
+ width: 100%;
49
+ position: relative;
50
+ box-sizing: border-box;
51
+ background-color: var(--input-field-color-default-background);
52
+ border: var(--border-width-regular) solid var(--input-field-color-default-border);
53
+ border-radius: var(--input-field-radius-lg);
54
+ padding: var(--spacing-2);
55
+ padding-right: calc(var(--spacing-2) + var(--size-2xl, 2rem));
56
+ text-align: left;
57
+ cursor: pointer;
58
+ color: var(--color-text-default-default);
59
+ transition: border-color 0.12s ease, background-color 0.12s ease;
60
+ -webkit-tap-highlight-color: transparent;
61
+ }
62
+
63
+ .muka-dropdown-select__field::after {
64
+ content: '';
65
+ position: absolute;
66
+ inset: 0;
67
+ border-radius: inherit;
68
+ box-shadow: inset 0 1px 2px 0 rgba(26, 26, 26, 0.08);
69
+ pointer-events: none;
70
+ }
71
+
72
+ .muka-dropdown-select__field--sm {
73
+ min-height: var(--input-field-height-sm);
74
+ border-radius: var(--input-field-radius-sm);
75
+ padding-right: calc(var(--spacing-2) + var(--size-xl, 1.5rem));
76
+ }
77
+
78
+ .muka-dropdown-select__field--md {
79
+ min-height: var(--input-field-height-default);
80
+ border-radius: var(--input-field-radius-md);
81
+ }
82
+
83
+ .muka-dropdown-select__field--lg {
84
+ min-height: var(--input-field-height-lg);
85
+ border-radius: var(--input-field-radius-lg);
86
+ }
87
+
88
+ .muka-dropdown-select__field--focused:not(.muka-dropdown-select__field--disabled) {
89
+ border-width: var(--border-width-bold);
90
+ border-color: var(--input-field-color-focus-border);
91
+ background-color: var(--input-field-color-focus-background);
92
+ padding: calc(var(--spacing-2) - 1px);
93
+ padding-right: calc(var(--spacing-2) + var(--size-2xl, 2rem) - 1px);
94
+ }
95
+
96
+ .muka-dropdown-select__field--sm.muka-dropdown-select__field--focused:not(.muka-dropdown-select__field--disabled) {
97
+ padding-right: calc(var(--spacing-2) + var(--size-xl, 1.5rem) - 1px);
98
+ }
99
+
100
+ .muka-dropdown-select__field--error:not(.muka-dropdown-select__field--disabled) {
101
+ border-color: var(--color-state-error-border, var(--color-state-error-foreground));
102
+ }
103
+
104
+ .muka-dropdown-select__field--disabled {
105
+ opacity: 0.5;
106
+ cursor: not-allowed;
107
+ }
108
+
109
+ .muka-dropdown-select__content {
110
+ position: relative;
111
+ z-index: 1;
112
+ display: flex;
113
+ flex: 1 1 auto;
114
+ min-width: 0;
115
+ align-items: center;
116
+ /* Let empty-field / value clicks reach the full-field MenuTrigger underneath. */
117
+ pointer-events: none;
118
+ }
119
+
120
+ .muka-dropdown-select__placeholder {
121
+ color: var(--color-text-subtle-default);
122
+ font-family: var(--text-label-md-regular-fontFamily);
123
+ font-size: var(--text-label-md-regular-fontSize);
124
+ font-weight: var(--text-label-md-regular-fontWeight);
125
+ line-height: var(--text-label-md-regular-lineHeight);
126
+ padding-inline: var(--spacing-1);
127
+ }
128
+
129
+ .muka-dropdown-select__value {
130
+ font-family: var(--text-label-md-regular-fontFamily);
131
+ font-size: var(--text-label-md-regular-fontSize);
132
+ font-weight: var(--text-label-md-regular-fontWeight);
133
+ line-height: var(--text-label-md-regular-lineHeight);
134
+ padding-inline: var(--spacing-1);
135
+ white-space: nowrap;
136
+ overflow: hidden;
137
+ text-overflow: ellipsis;
138
+ }
139
+
140
+ .muka-dropdown-select__chips {
141
+ display: flex;
142
+ flex: 1 1 auto;
143
+ flex-wrap: wrap;
144
+ gap: var(--spacing-2);
145
+ align-items: flex-start;
146
+ min-width: 0;
147
+ /* Chip remove controls must remain clickable above the field hit target. */
148
+ pointer-events: auto;
149
+ }
150
+
151
+ .muka-dropdown-select__field--multiline {
152
+ align-items: flex-start;
153
+ min-height: 7rem;
154
+ }
155
+
156
+ .muka-dropdown-select__menu-button {
157
+ position: absolute;
158
+ inset: 0;
159
+ z-index: 0;
160
+ display: inline-flex;
161
+ align-items: center;
162
+ justify-content: flex-end;
163
+ width: auto;
164
+ height: auto;
165
+ padding: 0;
166
+ padding-right: var(--spacing-2);
167
+ border: none;
168
+ border-radius: inherit;
169
+ background: transparent;
170
+ color: var(--color-text-subtle-default);
171
+ cursor: pointer;
172
+ }
173
+
174
+ .muka-dropdown-select__field--multiline .muka-dropdown-select__menu-button {
175
+ align-items: flex-start;
176
+ padding-top: calc(var(--spacing-2) + 8px);
177
+ }
178
+
179
+ .muka-dropdown-select__chevron {
180
+ display: inline-flex;
181
+ align-items: center;
182
+ justify-content: center;
183
+ width: var(--size-2xl, 2rem);
184
+ height: var(--size-2xl, 2rem);
185
+ pointer-events: none;
186
+ color: var(--color-text-subtle-default);
187
+ }
188
+
189
+ .muka-dropdown-select__chevron .muka-icon,
190
+ .muka-dropdown-select__menu-button:hover .muka-dropdown-select__chevron,
191
+ .muka-dropdown-select__menu-button:hover .muka-icon {
192
+ color: var(--color-text-subtle-default);
193
+ }
194
+
195
+ .muka-dropdown-select__field--sm .muka-dropdown-select__chevron {
196
+ width: var(--size-xl, 1.5rem);
197
+ height: var(--size-xl, 1.5rem);
198
+ }
199
+
200
+ .muka-dropdown-select__menu-button:focus-visible {
201
+ outline: 2px solid var(--color-border-focus, var(--color-action-default));
202
+ outline-offset: 2px;
203
+ }
204
+
205
+ .muka-dropdown-select__helper {
206
+ margin: 0;
207
+ color: var(--color-text-subtle-default);
208
+ font-family: var(--text-label-sm-regular-fontFamily);
209
+ font-size: var(--text-label-sm-regular-fontSize);
210
+ font-weight: var(--text-label-sm-regular-fontWeight);
211
+ line-height: var(--text-label-sm-regular-lineHeight);
212
+ }
213
+
214
+ .muka-dropdown-select__error {
215
+ margin: 0;
216
+ color: var(--color-state-error-foreground);
217
+ font-family: var(--text-label-sm-regular-fontFamily);
218
+ font-size: var(--text-label-sm-regular-fontSize);
219
+ font-weight: var(--text-label-sm-regular-fontWeight);
220
+ line-height: var(--text-label-sm-regular-lineHeight);
221
+ }
222
+
223
+ .muka-dropdown-select__menu {
224
+ /* Uses Menu min-width (280px); grows with long labels; left-aligned to the field. */
225
+ }
@@ -163,27 +163,58 @@
163
163
  color: var(--input-field-color-disabled-foreground);
164
164
  }
165
165
 
166
- /* Icons */
166
+ /* Icons — Figma inputfield content: sm 16px, md 20px, lg 24px. */
167
167
  .muka-input__icon {
168
168
  display: inline-flex;
169
169
  align-items: center;
170
+ justify-content: center;
170
171
  flex-shrink: 0;
171
172
  color: var(--color-text-subtle-default);
172
- width: var(--icon-size-default);
173
- height: var(--icon-size-default);
173
+ width: var(--icon-size-sm);
174
+ height: var(--icon-size-sm);
174
175
  }
175
176
 
176
177
  .muka-input__field--sm .muka-input__icon {
177
- width: var(--icon-size-sm);
178
- height: var(--icon-size-sm);
178
+ width: var(--icon-size-xs);
179
+ height: var(--icon-size-xs);
179
180
  }
180
181
 
181
182
  .muka-input__field--lg .muka-input__icon {
182
- width: var(--icon-size-lg);
183
- height: var(--icon-size-lg);
183
+ width: var(--icon-size-default);
184
+ height: var(--icon-size-default);
184
185
  }
185
186
 
186
- .muka-input__field--disabled .muka-input__icon {
187
+ .muka-input__clear {
188
+ display: inline-flex;
189
+ align-items: center;
190
+ justify-content: center;
191
+ flex-shrink: 0;
192
+ width: var(--size-2xl, 2rem);
193
+ height: var(--size-2xl, 2rem);
194
+ padding: 0;
195
+ border: none;
196
+ background: transparent;
197
+ color: var(--color-text-subtle-default);
198
+ cursor: pointer;
199
+ }
200
+
201
+ .muka-input__field--sm .muka-input__clear {
202
+ width: var(--size-xl, 1.5rem);
203
+ height: var(--size-xl, 1.5rem);
204
+ }
205
+
206
+ /* Icon sets its own color; pin the glyph to text subtle, including hover. */
207
+ .muka-input__icon .muka-icon,
208
+ .muka-input__clear .muka-icon,
209
+ .muka-input__clear:hover,
210
+ .muka-input__clear:hover .muka-icon {
211
+ color: var(--color-text-subtle-default);
212
+ }
213
+
214
+ .muka-input__field--disabled .muka-input__icon,
215
+ .muka-input__field--disabled .muka-input__icon .muka-icon,
216
+ .muka-input__field--disabled .muka-input__clear,
217
+ .muka-input__field--disabled .muka-input__clear .muka-icon {
187
218
  color: var(--input-field-color-disabled-foreground);
188
219
  }
189
220
 
@@ -192,6 +223,12 @@
192
223
  height: 100%;
193
224
  }
194
225
 
226
+ .muka-input__native::-webkit-search-cancel-button,
227
+ .muka-input__native::-webkit-search-decoration {
228
+ -webkit-appearance: none;
229
+ appearance: none;
230
+ }
231
+
195
232
  /* Helper text */
196
233
  .muka-input__helper {
197
234
  font-family: var(--text-label-sm-regular-fontFamily);