@rokkit/themes 1.0.0-next.14 → 1.0.0-next.140

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 (125) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +106 -9
  3. package/build.mjs +235 -0
  4. package/dist/base.css +4934 -0
  5. package/dist/glass.css +1400 -0
  6. package/dist/index.css +10991 -0
  7. package/dist/material.css +1435 -0
  8. package/dist/minimal.css +1389 -0
  9. package/dist/rokkit.css +1829 -0
  10. package/package.json +53 -52
  11. package/src/base/breadcrumbs.css +47 -0
  12. package/src/base/button.css +254 -0
  13. package/src/base/card.css +36 -0
  14. package/src/base/carousel.css +128 -0
  15. package/src/base/connector.css +92 -0
  16. package/src/base/display.css +91 -0
  17. package/src/base/floating-action.css +388 -0
  18. package/src/base/floating-navigation.css +405 -0
  19. package/src/base/graph-paper.css +83 -0
  20. package/src/base/grid.css +93 -0
  21. package/src/base/index.css +40 -0
  22. package/src/base/input.css +238 -0
  23. package/src/base/item.css +78 -0
  24. package/src/base/list.css +179 -0
  25. package/src/base/menu.css +274 -0
  26. package/src/base/pill.css +57 -0
  27. package/src/base/progress.css +34 -0
  28. package/src/base/range.css +121 -0
  29. package/src/base/rating.css +42 -0
  30. package/src/base/reveal.css +37 -0
  31. package/src/base/search-filter.css +132 -0
  32. package/src/base/select.css +411 -0
  33. package/src/base/shine.css +14 -0
  34. package/src/base/stepper.css +140 -0
  35. package/src/base/switch.css +152 -0
  36. package/src/base/table.css +159 -0
  37. package/src/base/tabs.css +171 -0
  38. package/src/base/tilt.css +14 -0
  39. package/src/base/timeline.css +84 -0
  40. package/src/base/toggle.css +138 -0
  41. package/src/base/toolbar.css +337 -0
  42. package/src/base/tree.css +235 -0
  43. package/src/base/upload-progress.css +155 -0
  44. package/src/base/upload-target.css +67 -0
  45. package/src/glass/button.css +153 -0
  46. package/src/glass/card.css +66 -0
  47. package/src/glass/floating-action.css +61 -0
  48. package/src/glass/floating-navigation.css +74 -0
  49. package/src/glass/index.css +23 -0
  50. package/src/glass/input.css +126 -0
  51. package/src/glass/list.css +122 -0
  52. package/src/glass/menu.css +92 -0
  53. package/src/glass/range.css +61 -0
  54. package/src/glass/search-filter.css +49 -0
  55. package/src/glass/select.css +178 -0
  56. package/src/glass/switch.css +28 -0
  57. package/src/glass/table.css +87 -0
  58. package/src/glass/tabs.css +58 -0
  59. package/src/glass/timeline.css +46 -0
  60. package/src/glass/toggle.css +48 -0
  61. package/src/glass/toolbar.css +84 -0
  62. package/src/glass/tree.css +110 -0
  63. package/src/index.css +18 -0
  64. package/src/index.js +25 -2
  65. package/src/material/button.css +157 -0
  66. package/src/material/card.css +61 -0
  67. package/src/material/floating-action.css +60 -0
  68. package/src/material/floating-navigation.css +74 -0
  69. package/src/material/index.css +23 -0
  70. package/src/material/input.css +159 -0
  71. package/src/material/list.css +126 -0
  72. package/src/material/menu.css +92 -0
  73. package/src/material/range.css +62 -0
  74. package/src/material/search-filter.css +49 -0
  75. package/src/material/select.css +170 -0
  76. package/src/material/switch.css +28 -0
  77. package/src/material/table.css +91 -0
  78. package/src/material/tabs.css +62 -0
  79. package/src/material/timeline.css +46 -0
  80. package/src/material/toggle.css +48 -0
  81. package/src/material/toolbar.css +85 -0
  82. package/src/material/tree.css +103 -0
  83. package/src/minimal/button.css +155 -0
  84. package/src/minimal/card.css +61 -0
  85. package/src/minimal/floating-action.css +59 -0
  86. package/src/minimal/floating-navigation.css +70 -0
  87. package/src/minimal/index.css +23 -0
  88. package/src/minimal/input.css +119 -0
  89. package/src/minimal/list.css +126 -0
  90. package/src/minimal/menu.css +88 -0
  91. package/src/minimal/range.css +61 -0
  92. package/src/minimal/search-filter.css +49 -0
  93. package/src/minimal/select.css +170 -0
  94. package/src/minimal/switch.css +28 -0
  95. package/src/minimal/table.css +89 -0
  96. package/src/minimal/tabs.css +68 -0
  97. package/src/minimal/timeline.css +45 -0
  98. package/src/minimal/toggle.css +48 -0
  99. package/src/minimal/toolbar.css +85 -0
  100. package/src/minimal/tree.css +106 -0
  101. package/src/palette.css +7 -0
  102. package/src/rokkit/button.css +254 -0
  103. package/src/rokkit/card.css +64 -0
  104. package/src/rokkit/connector.css +11 -0
  105. package/src/rokkit/floating-action.css +65 -0
  106. package/src/rokkit/floating-navigation.css +83 -0
  107. package/src/rokkit/grid.css +46 -0
  108. package/src/rokkit/index.css +27 -0
  109. package/src/rokkit/input.css +134 -0
  110. package/src/rokkit/list.css +132 -0
  111. package/src/rokkit/menu.css +93 -0
  112. package/src/rokkit/range.css +62 -0
  113. package/src/rokkit/search-filter.css +49 -0
  114. package/src/rokkit/select.css +190 -0
  115. package/src/rokkit/switch.css +28 -0
  116. package/src/rokkit/table.css +89 -0
  117. package/src/rokkit/tabs.css +87 -0
  118. package/src/rokkit/timeline.css +46 -0
  119. package/src/rokkit/toggle.css +48 -0
  120. package/src/rokkit/toolbar.css +84 -0
  121. package/src/rokkit/tree.css +149 -0
  122. package/src/rokkit/upload-progress.css +102 -0
  123. package/src/rokkit/upload-target.css +50 -0
  124. package/src/constants.js +0 -4
  125. package/src/utils.js +0 -88
@@ -0,0 +1,159 @@
1
+ /* Material Theme - Form field and input styles
2
+ * Material Design outlined text field with floating label.
3
+ */
4
+
5
+ /* Form background: needed so floating label pill matches */
6
+ [data-style='material'] [data-form-root] {
7
+ @apply bg-surface-z1;
8
+ --material-bg: rgba(var(--color-surface-100), 1);
9
+ }
10
+
11
+ [data-mode='dark'] [data-style='material'] [data-form-root] {
12
+ --material-bg: rgba(var(--color-surface-900), 1);
13
+ }
14
+
15
+ /* Field root: relative positioning for floating label */
16
+ [data-style='material'] [data-field-root] {
17
+ @apply relative gap-0;
18
+ }
19
+
20
+ /* Input root: outlined border */
21
+ [data-style='material'] [data-input-root] {
22
+ @apply border-surface-z4 flex items-center rounded border bg-transparent p-0 transition-all;
23
+ background-image: none;
24
+ }
25
+
26
+ [data-style='material'] [data-input-root]:hover {
27
+ @apply border-surface-z6;
28
+ }
29
+
30
+ [data-style='material'] [data-input-root]:focus-within {
31
+ @apply border-primary-z5 bg-transparent;
32
+ background-image: none;
33
+ }
34
+
35
+ /* Inputs inside wrapper */
36
+ [data-style='material']
37
+ [data-input-root]
38
+ input:not([type='checkbox'], [type='radio'], [type='color']),
39
+ [data-style='material'] [data-input-root] textarea,
40
+ [data-style='material'] [data-input-root] select {
41
+ @apply text-surface-z9 w-full border-none bg-transparent px-3 py-2.5 transition-all outline-none;
42
+ font-size: 0.875rem;
43
+ line-height: 1.25rem;
44
+ }
45
+
46
+ [data-style='material'] [data-input-root] textarea {
47
+ @apply resize-vertical min-h-20;
48
+ }
49
+
50
+ /* Select inside input-root */
51
+ [data-style='material'] [data-input-root] [data-select-trigger] {
52
+ @apply text-surface-z9 rounded border-none bg-transparent px-3 shadow-none ring-0 focus:outline-none;
53
+ font-size: 0.875rem;
54
+ }
55
+
56
+ /* Suppress standalone select open-state ring/border when inside input-root */
57
+ [data-style='material'] [data-input-root] [data-select][data-open='true'] [data-select-trigger] {
58
+ @apply border-none shadow-none ring-0;
59
+ }
60
+
61
+ /* Labels: floating label effect (exclude checkbox — uses inline label) */
62
+ [data-style='material'] [data-field-root]:not([data-field-type='checkbox']) [data-field] > label {
63
+ @apply text-surface-z5 pointer-events-none absolute left-3 px-1 text-sm transition-all;
64
+ top: 50%;
65
+ transform: translateY(-50%);
66
+ background: transparent;
67
+ z-index: 1;
68
+ }
69
+
70
+ /* Label floats up when input has focus or value */
71
+ [data-style='material']
72
+ [data-field-root]:not([data-field-type='checkbox'])
73
+ [data-field]:has([data-input-root]:focus-within)
74
+ > label,
75
+ [data-style='material']
76
+ [data-field-root]:not([data-field-type='checkbox']):not([data-field-empty='true'])
77
+ [data-field]
78
+ > label {
79
+ @apply text-xs;
80
+ top: 0;
81
+ transform: translateY(-50%);
82
+ background: var(--material-bg, rgba(var(--color-surface-100), 1));
83
+ padding-inline: 0.25rem;
84
+ }
85
+
86
+ [data-style='material']
87
+ [data-field-root]:not([data-field-type='checkbox'])
88
+ [data-field]:has([data-input-root]:focus-within)
89
+ > label {
90
+ @apply text-primary-z5;
91
+ }
92
+
93
+ /* Checkbox fields: inline label, centered with icon */
94
+ [data-style='material'] [data-field-type='checkbox'] [data-field] {
95
+ @apply flex flex-row items-center gap-2;
96
+ }
97
+
98
+ [data-style='material'] [data-field-type='checkbox'] [data-field] > label {
99
+ @apply text-surface-z7 text-sm;
100
+ }
101
+
102
+ /* Form-level labels (FormRenderer) */
103
+ [data-style='material'] [data-form-root] label {
104
+ @apply text-surface-z5 text-sm;
105
+ }
106
+
107
+ /* Info field value */
108
+ [data-style='material'] [data-field-info] {
109
+ @apply text-primary-z6;
110
+ }
111
+
112
+ /* Separator */
113
+ [data-style='material'] [data-form-separator] {
114
+ @apply border-surface-z3;
115
+ }
116
+
117
+ /* Disabled state */
118
+ [data-style='material'] [data-field-disabled] [data-input-root] {
119
+ @apply border-surface-z3 bg-surface-z1 cursor-not-allowed opacity-60;
120
+ }
121
+
122
+ /* Error state */
123
+ [data-style='material'] [data-field-state='fail'] [data-input-root] {
124
+ @apply border-danger-z4;
125
+ }
126
+
127
+ [data-style='material']
128
+ [data-field-root]:not([data-field-type='checkbox'])[data-field-state='fail']
129
+ [data-field]
130
+ > label {
131
+ @apply text-danger-z4;
132
+ }
133
+
134
+ /* Description */
135
+ [data-style='material'] [data-description] {
136
+ @apply text-surface-z5 mt-1 px-3 text-xs;
137
+ }
138
+
139
+ /* Message */
140
+ [data-style='material'] [data-message] {
141
+ @apply text-danger-z5 mt-1 px-3 text-xs;
142
+ }
143
+
144
+ /* Checkbox */
145
+ [data-style='material'] [data-checkbox-icon] {
146
+ @apply text-surface-z5 text-lg;
147
+ }
148
+
149
+ [data-style='material']
150
+ [data-checkbox-root][data-variant='custom']:has(input:checked)
151
+ [data-checkbox-icon] {
152
+ @apply text-primary-z5;
153
+ }
154
+
155
+ /* Placeholders */
156
+ [data-style='material'] [data-input-root] input::placeholder,
157
+ [data-style='material'] [data-input-root] textarea::placeholder {
158
+ @apply text-surface-z4;
159
+ }
@@ -0,0 +1,126 @@
1
+ /**
2
+ * List - Material Theme Styles
3
+ *
4
+ * Material Design inspired with subtle elevation and ripple effects.
5
+ */
6
+
7
+ /* =============================================================================
8
+ List Container
9
+ ============================================================================= */
10
+
11
+ [data-style='material'] [data-list]:focus-within {
12
+ @apply outline-none;
13
+ }
14
+
15
+ /* =============================================================================
16
+ List Items
17
+ ============================================================================= */
18
+
19
+ [data-style='material'] [data-list] [data-list-item] {
20
+ @apply text-surface-z8;
21
+ }
22
+
23
+ [data-style='material'] [data-list] a[data-list-item],
24
+ [data-style='material'] [data-list] button[data-list-item] {
25
+ @apply text-surface-z7;
26
+ }
27
+
28
+ /* Hover and focus (keyboard navigation) */
29
+ [data-style='material']
30
+ [data-list]
31
+ [data-list-item]:hover:not(:disabled):not([data-disabled='true']),
32
+ [data-style='material']
33
+ [data-list]
34
+ [data-list-item]:focus:not(:disabled):not([data-disabled='true']) {
35
+ @apply bg-surface-z2 text-surface-z10 outline-none;
36
+ }
37
+
38
+ /* Active state — muted when list not focused */
39
+ [data-style='material'] [data-list] [data-list-item][data-active='true'] {
40
+ @apply bg-surface-z2 text-primary-z9;
41
+ }
42
+
43
+ /* Active state — full highlight when list has focus */
44
+ [data-style='material'] [data-list]:focus-within [data-list-item][data-active='true'] {
45
+ @apply bg-primary-z2 text-primary-z9;
46
+ }
47
+
48
+ /* Active + hover/focus */
49
+ [data-style='material'] [data-list] [data-list-item][data-active='true']:hover:not(:disabled),
50
+ [data-style='material'] [data-list] [data-list-item][data-active='true']:focus:not(:disabled) {
51
+ @apply bg-primary-z3;
52
+ }
53
+
54
+ /* =============================================================================
55
+ Item Elements
56
+ ============================================================================= */
57
+
58
+ [data-style='material'] [data-list] [data-list-item] [data-item-icon] {
59
+ @apply text-surface-z5;
60
+ }
61
+
62
+ [data-style='material'] [data-list] [data-list-item]:hover:not(:disabled) [data-item-icon],
63
+ [data-style='material'] [data-list] [data-list-item]:focus:not(:disabled) [data-item-icon] {
64
+ @apply text-surface-z7;
65
+ }
66
+
67
+ [data-style='material'] [data-list] [data-list-item][data-active='true'] [data-item-icon] {
68
+ @apply text-primary-z6;
69
+ }
70
+
71
+ [data-style='material'] [data-list] [data-list-item] [data-item-description] {
72
+ @apply text-surface-z5;
73
+ }
74
+
75
+ [data-style='material'] [data-list] [data-list-item][data-active='true'] [data-item-description] {
76
+ @apply text-primary-z7;
77
+ }
78
+
79
+ [data-style='material'] [data-list] [data-list-item] [data-item-badge] {
80
+ @apply text-surface-z6 bg-surface-z2 rounded-full;
81
+ }
82
+
83
+ [data-style='material'] [data-list] [data-list-item][data-active='true'] [data-item-badge] {
84
+ @apply text-primary-z8 bg-primary-z2;
85
+ }
86
+
87
+ /* =============================================================================
88
+ Groups
89
+ ============================================================================= */
90
+
91
+ [data-style='material'] [data-list] [data-list-group] {
92
+ @apply text-surface-z6 font-medium;
93
+ }
94
+
95
+ [data-style='material'] [data-list] [data-list-group]:hover:not(:disabled),
96
+ [data-style='material'] [data-list] [data-list-group]:focus:not(:disabled) {
97
+ @apply bg-surface-z3 text-surface-z8;
98
+ }
99
+
100
+ /* =============================================================================
101
+ Separator
102
+ ============================================================================= */
103
+
104
+ [data-style='material'] [data-list] [data-list-separator] {
105
+ @apply bg-surface-z3;
106
+ }
107
+
108
+ /* =============================================================================
109
+ Multi-Selection
110
+ ============================================================================= */
111
+
112
+ [data-style='material'] [data-list] [data-list-item][data-selected='true'] {
113
+ @apply bg-primary-z2 text-primary-z9;
114
+ }
115
+
116
+ [data-style='material'] [data-list]:focus-within [data-list-item][data-selected='true'] {
117
+ @apply bg-primary-z2;
118
+ }
119
+
120
+ [data-style='material'] [data-list] [data-list-item][data-selected='true']:hover:not(:disabled) {
121
+ @apply bg-primary-z3;
122
+ }
123
+
124
+ [data-style='material'] [data-list] [data-list-item][data-selected='true'] [data-item-icon] {
125
+ @apply text-primary-z6;
126
+ }
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Menu - Material Theme Styles
3
+ *
4
+ * Material Design inspired with elevation and shadows.
5
+ */
6
+
7
+ /* =============================================================================
8
+ Menu Trigger
9
+ ============================================================================= */
10
+
11
+ [data-style='material'] [data-menu-trigger] {
12
+ @apply border-surface-z4 bg-surface-z1 text-surface-z8 border shadow-sm;
13
+ }
14
+
15
+ [data-style='material'] [data-menu-trigger]:hover:not(:disabled) {
16
+ @apply bg-surface-z2 text-surface-z10 border-surface-z5 shadow-md;
17
+ }
18
+
19
+ [data-style='material'] [data-menu-trigger]:focus-visible {
20
+ @apply ring-primary-z4 ring-2 outline-none;
21
+ }
22
+
23
+ [data-style='material'] [data-menu][data-open='true'] [data-menu-trigger] {
24
+ @apply bg-primary-z2 border-primary-z5 shadow-md;
25
+ }
26
+
27
+ /* Trigger elements */
28
+ [data-style='material'] [data-menu-trigger] [data-menu-icon] {
29
+ @apply text-surface-z5;
30
+ }
31
+
32
+ [data-style='material'] [data-menu-trigger]:hover:not(:disabled) [data-menu-icon] {
33
+ @apply text-surface-z7;
34
+ }
35
+
36
+ [data-style='material'] [data-menu-trigger] [data-menu-arrow] {
37
+ @apply text-surface-z5;
38
+ }
39
+
40
+ /* =============================================================================
41
+ Menu Dropdown
42
+ ============================================================================= */
43
+
44
+ [data-style='material'] [data-menu-dropdown] {
45
+ @apply bg-surface-z1 border-surface-z3 border shadow-lg;
46
+ }
47
+
48
+ /* =============================================================================
49
+ Menu Items
50
+ ============================================================================= */
51
+
52
+ [data-style='material'] [data-menu-item] {
53
+ @apply text-surface-z8;
54
+ }
55
+
56
+ [data-style='material'] [data-menu-item]:hover:not(:disabled),
57
+ [data-style='material'] [data-menu-item]:focus:not(:disabled) {
58
+ @apply bg-surface-z2 text-surface-z10 outline-none;
59
+ }
60
+
61
+ [data-style='material'] [data-menu-item]:focus-visible {
62
+ @apply ring-primary-z4 ring-2 outline-none ring-inset;
63
+ }
64
+
65
+ /* Item elements */
66
+ [data-style='material'] [data-menu-item] [data-item-icon] {
67
+ @apply text-surface-z5;
68
+ }
69
+
70
+ [data-style='material'] [data-menu-item]:hover:not(:disabled) [data-item-icon] {
71
+ @apply text-surface-z7;
72
+ }
73
+
74
+ [data-style='material'] [data-menu-item] [data-item-description] {
75
+ @apply text-surface-z5;
76
+ }
77
+
78
+ /* =============================================================================
79
+ Groups
80
+ ============================================================================= */
81
+
82
+ [data-style='material'] [data-menu-group] {
83
+ @apply text-surface-z5 font-medium;
84
+ }
85
+
86
+ /* =============================================================================
87
+ Divider
88
+ ============================================================================= */
89
+
90
+ [data-style='material'] [data-menu-separator] {
91
+ @apply bg-surface-z3;
92
+ }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Range - Material Theme Styles
3
+ *
4
+ * Flat design with subtle elevation.
5
+ */
6
+
7
+ /* =============================================================================
8
+ Track
9
+ ============================================================================= */
10
+
11
+ [data-style='material'] [data-range-bar] {
12
+ @apply bg-surface-z3;
13
+ }
14
+
15
+ [data-style='material'] [data-range-selected] {
16
+ @apply bg-primary;
17
+ }
18
+
19
+ /* =============================================================================
20
+ Thumb
21
+ ============================================================================= */
22
+
23
+ [data-style='material'] [data-range-thumb] {
24
+ @apply bg-primary border-primary shadow-md;
25
+ }
26
+
27
+ [data-style='material'] [data-range-thumb][data-sliding] {
28
+ @apply shadow-lg;
29
+ box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-primary) 25%, transparent);
30
+ }
31
+
32
+ [data-style='material'] [data-range-thumb]:focus-visible {
33
+ box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-primary) 25%, transparent);
34
+ }
35
+
36
+ /* =============================================================================
37
+ Ticks
38
+ ============================================================================= */
39
+
40
+ [data-style='material'] [data-range-tick] {
41
+ @apply text-surface-z6;
42
+ }
43
+
44
+ [data-style='material'] [data-tick-bar] {
45
+ @apply border-surface-z5;
46
+ }
47
+
48
+ [data-style='material'] [data-tick-label] {
49
+ @apply text-surface-z6;
50
+ }
51
+
52
+ /* =============================================================================
53
+ Disabled
54
+ ============================================================================= */
55
+
56
+ [data-style='material'] [data-range][data-disabled] [data-range-thumb] {
57
+ @apply bg-surface-z4 border-surface-z4 shadow-none;
58
+ }
59
+
60
+ [data-style='material'] [data-range][data-disabled] [data-range-selected] {
61
+ @apply bg-surface-z4;
62
+ }
@@ -0,0 +1,49 @@
1
+ /**
2
+ * SearchFilter - Material Theme Styles
3
+ *
4
+ * Material Design inspired with elevation and shadows.
5
+ */
6
+
7
+ /* =============================================================================
8
+ Input
9
+ ============================================================================= */
10
+
11
+ [data-style='material'] [data-search-input] {
12
+ @apply text-surface-z8 border-surface-z4 bg-surface-z1 border shadow-sm;
13
+ }
14
+
15
+ [data-style='material'] [data-search-input]:focus {
16
+ @apply border-primary-z5 ring-primary-z4 ring-1;
17
+ }
18
+
19
+ [data-style='material'] [data-search-input]::placeholder {
20
+ @apply text-surface-z5;
21
+ }
22
+
23
+ /* =============================================================================
24
+ Clear Button
25
+ ============================================================================= */
26
+
27
+ [data-style='material'] [data-search-clear] {
28
+ @apply text-surface-z5;
29
+ }
30
+
31
+ [data-style='material'] [data-search-clear]:hover {
32
+ @apply text-surface-z8 bg-surface-z2 rounded;
33
+ }
34
+
35
+ /* =============================================================================
36
+ Tags
37
+ ============================================================================= */
38
+
39
+ [data-style='material'] [data-search-tag] {
40
+ @apply text-surface-z8 bg-surface-z2 rounded-full shadow-sm;
41
+ }
42
+
43
+ [data-style='material'] [data-search-tag-remove] {
44
+ @apply text-surface-z6 rounded-full;
45
+ }
46
+
47
+ [data-style='material'] [data-search-tag-remove]:hover {
48
+ @apply text-surface-z9 bg-surface-z3;
49
+ }
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Select - Material Theme Styles
3
+ *
4
+ * Material Design inspired with elevation and shadows.
5
+ */
6
+
7
+ /* =============================================================================
8
+ Trigger Button
9
+ ============================================================================= */
10
+
11
+ [data-style='material'] [data-select-trigger] {
12
+ @apply bg-surface-z1 text-surface-z8 border-surface-z4 border shadow-sm;
13
+ }
14
+
15
+ [data-style='material'] [data-select-trigger]:hover:not(:disabled) {
16
+ @apply bg-surface-z2 border-surface-z5 shadow-md;
17
+ }
18
+
19
+ [data-style='material'] [data-select-trigger]:focus-visible {
20
+ @apply ring-primary-z4 ring-1 outline-none;
21
+ }
22
+
23
+ [data-style='material'] [data-select][data-open='true'] [data-select-trigger] {
24
+ @apply border-primary-z5 shadow-md;
25
+ }
26
+
27
+ /* =============================================================================
28
+ Placeholder
29
+ ============================================================================= */
30
+
31
+ [data-style='material'] [data-select-placeholder] {
32
+ @apply text-surface-z5;
33
+ }
34
+
35
+ /* =============================================================================
36
+ Arrow
37
+ ============================================================================= */
38
+
39
+ [data-style='material'] [data-select-arrow] {
40
+ @apply text-surface-z5;
41
+ }
42
+
43
+ [data-style='material'] [data-select-trigger]:hover:not(:disabled) [data-select-arrow] {
44
+ @apply text-surface-z7;
45
+ }
46
+
47
+ /* =============================================================================
48
+ Tags (MultiSelect)
49
+ ============================================================================= */
50
+
51
+ [data-style='material'] [data-select-tag] {
52
+ @apply bg-surface-z2 text-surface-z8 rounded-full shadow-sm;
53
+ }
54
+
55
+ [data-style='material'] [data-select-tag-remove] {
56
+ @apply text-surface-z6 rounded-full;
57
+ }
58
+
59
+ [data-style='material'] [data-select-tag-remove]:hover {
60
+ @apply text-surface-z9 bg-surface-z3;
61
+ }
62
+
63
+ /* =============================================================================
64
+ Dropdown Panel
65
+ ============================================================================= */
66
+
67
+ [data-style='material'] [data-select-dropdown] {
68
+ @apply bg-surface-z1 border-surface-z3 border shadow-lg;
69
+ }
70
+
71
+ /* =============================================================================
72
+ Options
73
+ ============================================================================= */
74
+
75
+ [data-style='material'] [data-select-option] {
76
+ @apply text-surface-z8;
77
+ }
78
+
79
+ [data-style='material'] [data-select-option]:hover:not(:disabled),
80
+ [data-style='material'] [data-select-option]:focus:not(:disabled) {
81
+ @apply bg-surface-z2 text-surface-z10;
82
+ }
83
+
84
+ [data-style='material'] [data-select-option]:focus-visible {
85
+ @apply ring-primary-z4 ring-2 outline-none ring-inset;
86
+ }
87
+
88
+ [data-style='material'] [data-select-option][data-selected='true'] {
89
+ @apply bg-primary-z2 text-primary-z9;
90
+ }
91
+
92
+ [data-style='material'] [data-select-option][data-selected='true']:hover:not(:disabled),
93
+ [data-style='material'] [data-select-option][data-selected='true']:focus:not(:disabled) {
94
+ @apply bg-primary-z3;
95
+ }
96
+
97
+ /* Check mark */
98
+ [data-style='material'] [data-select-check] {
99
+ @apply text-primary-z6;
100
+ }
101
+
102
+ /* Checkbox */
103
+ [data-style='material'] [data-select-checkbox] {
104
+ @apply border-surface-z5 bg-surface-z1 rounded;
105
+ }
106
+
107
+ [data-style='material'] [data-select-checkbox][data-checked='true'] {
108
+ @apply bg-primary-z5 border-primary-z5 text-white;
109
+ }
110
+
111
+ /* Item elements */
112
+ [data-style='material'] [data-select-option] [data-item-icon] {
113
+ @apply text-surface-z5;
114
+ }
115
+
116
+ [data-style='material'] [data-select-option]:hover:not(:disabled) [data-item-icon] {
117
+ @apply text-surface-z7;
118
+ }
119
+
120
+ [data-style='material'] [data-select-option][data-selected='true'] [data-item-icon] {
121
+ @apply text-primary-z6;
122
+ }
123
+
124
+ [data-style='material'] [data-select-option] [data-item-description] {
125
+ @apply text-surface-z5;
126
+ }
127
+
128
+ [data-style='material'] [data-select-option][data-selected='true'] [data-item-description] {
129
+ @apply text-primary-z7;
130
+ }
131
+
132
+ /* =============================================================================
133
+ Groups
134
+ ============================================================================= */
135
+
136
+ [data-style='material'] [data-select-group-label] {
137
+ @apply text-surface-z5 font-medium;
138
+ }
139
+
140
+ /* =============================================================================
141
+ Divider
142
+ ============================================================================= */
143
+
144
+ [data-style='material'] [data-select-divider] {
145
+ @apply bg-surface-z3;
146
+ }
147
+
148
+ /* =============================================================================
149
+ Filter Input
150
+ ============================================================================= */
151
+
152
+ [data-style='material'] [data-select-filter] {
153
+ @apply bg-surface-z1;
154
+ }
155
+
156
+ [data-style='material'] [data-select-filter-input] {
157
+ @apply text-surface-z8 border-surface-z4 bg-surface-z1 border shadow-sm;
158
+ }
159
+
160
+ [data-style='material'] [data-select-filter-input]:focus {
161
+ @apply border-primary-z5 ring-primary-z4 ring-1;
162
+ }
163
+
164
+ [data-style='material'] [data-select-filter-input]::placeholder {
165
+ @apply text-surface-z5;
166
+ }
167
+
168
+ [data-style='material'] [data-select-empty] {
169
+ @apply text-surface-z5;
170
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Switch - Material Theme Styles
3
+ */
4
+
5
+ [data-style='material'] [data-switch-track] {
6
+ @apply bg-surface-z3;
7
+ }
8
+
9
+ [data-style='material'] [data-switch-thumb] {
10
+ @apply bg-surface-z6 shadow-md;
11
+ }
12
+
13
+ [data-style='material'] [data-switch]:focus-visible [data-switch-track] {
14
+ @apply ring-primary-z5 ring-2 ring-offset-1;
15
+ }
16
+
17
+ /* On state */
18
+ [data-style='material'] [data-switch][aria-checked='true'] [data-switch-track] {
19
+ @apply bg-primary-z5;
20
+ }
21
+
22
+ [data-style='material'] [data-switch][aria-checked='true'] [data-switch-thumb] {
23
+ @apply bg-white shadow-lg;
24
+ }
25
+
26
+ [data-style='material'] [data-switch-label] {
27
+ @apply text-surface-z7;
28
+ }