@m3-baseui/react-tailwind 1.4.0 → 3.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 (171) hide show
  1. package/dist/{badge.js → components/badge/index.js} +4 -4
  2. package/dist/components/badge/index.js.map +1 -0
  3. package/dist/{bottom-app-bar.d.ts → components/bottom-app-bar/index.d.ts} +22 -21
  4. package/dist/{bottom-app-bar.js → components/bottom-app-bar/index.js} +4 -4
  5. package/dist/components/bottom-app-bar/index.js.map +1 -0
  6. package/dist/{bottom-sheet.d.ts → components/bottom-sheet/index.d.ts} +37 -36
  7. package/dist/{bottom-sheet.js → components/bottom-sheet/index.js} +4 -4
  8. package/dist/components/bottom-sheet/index.js.map +1 -0
  9. package/dist/{button.js → components/button/index.js} +3 -3
  10. package/dist/components/button/index.js.map +1 -0
  11. package/dist/{button-group.js → components/button-group/index.js} +4 -4
  12. package/dist/components/button-group/index.js.map +1 -0
  13. package/dist/{card.js → components/card/index.js} +4 -4
  14. package/dist/components/card/index.js.map +1 -0
  15. package/dist/{carousel.d.ts → components/carousel/index.d.ts} +21 -0
  16. package/dist/{carousel.js → components/carousel/index.js} +11 -5
  17. package/dist/components/carousel/index.js.map +1 -0
  18. package/dist/{checkbox.d.ts → components/checkbox/index.d.ts} +22 -21
  19. package/dist/{checkbox.js → components/checkbox/index.js} +3 -3
  20. package/dist/components/checkbox/index.js.map +1 -0
  21. package/dist/{chip.js → components/chip/index.js} +3 -3
  22. package/dist/components/chip/index.js.map +1 -0
  23. package/dist/components/date-picker/index.d.ts +189 -0
  24. package/dist/{date-picker.js → components/date-picker/index.js} +4 -4
  25. package/dist/components/date-picker/index.js.map +1 -0
  26. package/dist/{dialog.js → components/dialog/index.js} +4 -4
  27. package/dist/components/dialog/index.js.map +1 -0
  28. package/dist/{divider.js → components/divider/index.js} +3 -3
  29. package/dist/components/divider/index.js.map +1 -0
  30. package/dist/{fab.d.ts → components/fab/index.d.ts} +29 -15
  31. package/dist/components/fab/index.js +79 -0
  32. package/dist/components/fab/index.js.map +1 -0
  33. package/dist/{fab-menu.d.ts → components/fab-menu/index.d.ts} +0 -21
  34. package/dist/{fab-menu.js → components/fab-menu/index.js} +49 -18
  35. package/dist/components/fab-menu/index.js.map +1 -0
  36. package/dist/{icon-button.js → components/icon-button/index.js} +3 -3
  37. package/dist/components/icon-button/index.js.map +1 -0
  38. package/dist/components/item/index.d.ts +95 -0
  39. package/dist/{item.js → components/item/index.js} +3 -3
  40. package/dist/components/item/index.js.map +1 -0
  41. package/dist/{list.js → components/list/index.js} +3 -3
  42. package/dist/components/list/index.js.map +1 -0
  43. package/dist/{loading-indicator.js → components/loading-indicator/index.js} +4 -4
  44. package/dist/components/loading-indicator/index.js.map +1 -0
  45. package/dist/{menu.d.ts → components/menu/index.d.ts} +61 -60
  46. package/dist/components/menu/index.js +179 -0
  47. package/dist/components/menu/index.js.map +1 -0
  48. package/dist/components/navigation-bar/index.d.ts +92 -0
  49. package/dist/{navigation-bar.js → components/navigation-bar/index.js} +3 -3
  50. package/dist/components/navigation-bar/index.js.map +1 -0
  51. package/dist/{navigation-drawer.js → components/navigation-drawer/index.js} +4 -4
  52. package/dist/components/navigation-drawer/index.js.map +1 -0
  53. package/dist/components/navigation-rail/index.d.ts +102 -0
  54. package/dist/{navigation-rail.js → components/navigation-rail/index.js} +4 -4
  55. package/dist/components/navigation-rail/index.js.map +1 -0
  56. package/dist/components/progress/index.d.ts +127 -0
  57. package/dist/components/progress/index.js +101 -0
  58. package/dist/components/progress/index.js.map +1 -0
  59. package/dist/{radio.d.ts → components/radio/index.d.ts} +17 -16
  60. package/dist/{radio.js → components/radio/index.js} +3 -3
  61. package/dist/components/radio/index.js.map +1 -0
  62. package/dist/{search.d.ts → components/search/index.d.ts} +62 -61
  63. package/dist/{search.js → components/search/index.js} +4 -4
  64. package/dist/components/search/index.js.map +1 -0
  65. package/dist/{segmented-button.d.ts → components/segmented-button/index.d.ts} +32 -31
  66. package/dist/{segmented-button.js → components/segmented-button/index.js} +4 -4
  67. package/dist/components/segmented-button/index.js.map +1 -0
  68. package/dist/components/select/index.d.ts +235 -0
  69. package/dist/components/select/index.js +260 -0
  70. package/dist/components/select/index.js.map +1 -0
  71. package/dist/{side-sheet.js → components/side-sheet/index.js} +4 -4
  72. package/dist/components/side-sheet/index.js.map +1 -0
  73. package/dist/{slider.d.ts → components/slider/index.d.ts} +52 -51
  74. package/dist/{slider.js → components/slider/index.js} +4 -4
  75. package/dist/components/slider/index.js.map +1 -0
  76. package/dist/{snackbar.d.ts → components/snackbar/index.d.ts} +42 -41
  77. package/dist/{snackbar.js → components/snackbar/index.js} +3 -3
  78. package/dist/components/snackbar/index.js.map +1 -0
  79. package/dist/{split-button.js → components/split-button/index.js} +4 -4
  80. package/dist/components/split-button/index.js.map +1 -0
  81. package/dist/components/switch/index.d.ts +73 -0
  82. package/dist/{switch.js → components/switch/index.js} +3 -3
  83. package/dist/components/switch/index.js.map +1 -0
  84. package/dist/{tabs.js → components/tabs/index.js} +4 -4
  85. package/dist/components/tabs/index.js.map +1 -0
  86. package/dist/{textfield.d.ts → components/textfield/index.d.ts} +7 -1
  87. package/dist/{textfield.js → components/textfield/index.js} +35 -13
  88. package/dist/components/textfield/index.js.map +1 -0
  89. package/dist/components/time-picker/index.d.ts +153 -0
  90. package/dist/{time-picker.js → components/time-picker/index.js} +28 -13
  91. package/dist/components/time-picker/index.js.map +1 -0
  92. package/dist/{toolbar.js → components/toolbar/index.js} +4 -4
  93. package/dist/components/toolbar/index.js.map +1 -0
  94. package/dist/{tooltip.d.ts → components/tooltip/index.d.ts} +47 -46
  95. package/dist/{tooltip.js → components/tooltip/index.js} +4 -4
  96. package/dist/components/tooltip/index.js.map +1 -0
  97. package/dist/{top-app-bar.js → components/top-app-bar/index.js} +4 -4
  98. package/dist/components/top-app-bar/index.js.map +1 -0
  99. package/dist/index.d.ts +40 -39
  100. package/dist/index.js +382 -130
  101. package/dist/index.js.map +1 -1
  102. package/package.json +151 -151
  103. package/styles/preset.css +75 -7
  104. package/styles/theme.css +2 -0
  105. package/styles/tokens.css +2 -0
  106. package/dist/badge.js.map +0 -1
  107. package/dist/bottom-app-bar.js.map +0 -1
  108. package/dist/bottom-sheet.js.map +0 -1
  109. package/dist/button-group.js.map +0 -1
  110. package/dist/button.js.map +0 -1
  111. package/dist/card.js.map +0 -1
  112. package/dist/carousel.js.map +0 -1
  113. package/dist/checkbox.js.map +0 -1
  114. package/dist/chip.js.map +0 -1
  115. package/dist/date-picker.d.ts +0 -188
  116. package/dist/date-picker.js.map +0 -1
  117. package/dist/dialog.js.map +0 -1
  118. package/dist/divider.js.map +0 -1
  119. package/dist/fab-menu.js.map +0 -1
  120. package/dist/fab.js +0 -47
  121. package/dist/fab.js.map +0 -1
  122. package/dist/icon-button.js.map +0 -1
  123. package/dist/item.d.ts +0 -94
  124. package/dist/item.js.map +0 -1
  125. package/dist/list.js.map +0 -1
  126. package/dist/loading-indicator.js.map +0 -1
  127. package/dist/menu.js +0 -114
  128. package/dist/menu.js.map +0 -1
  129. package/dist/navigation-bar.d.ts +0 -91
  130. package/dist/navigation-bar.js.map +0 -1
  131. package/dist/navigation-drawer.js.map +0 -1
  132. package/dist/navigation-rail.d.ts +0 -101
  133. package/dist/navigation-rail.js.map +0 -1
  134. package/dist/progress.d.ts +0 -118
  135. package/dist/progress.js +0 -62
  136. package/dist/progress.js.map +0 -1
  137. package/dist/radio.js.map +0 -1
  138. package/dist/search.js.map +0 -1
  139. package/dist/segmented-button.js.map +0 -1
  140. package/dist/select.d.ts +0 -125
  141. package/dist/select.js +0 -99
  142. package/dist/select.js.map +0 -1
  143. package/dist/side-sheet.js.map +0 -1
  144. package/dist/slider.js.map +0 -1
  145. package/dist/snackbar.js.map +0 -1
  146. package/dist/split-button.js.map +0 -1
  147. package/dist/switch.d.ts +0 -72
  148. package/dist/switch.js.map +0 -1
  149. package/dist/tabs.js.map +0 -1
  150. package/dist/textfield.js.map +0 -1
  151. package/dist/time-picker.d.ts +0 -144
  152. package/dist/time-picker.js.map +0 -1
  153. package/dist/toolbar.js.map +0 -1
  154. package/dist/tooltip.js.map +0 -1
  155. package/dist/top-app-bar.js.map +0 -1
  156. /package/dist/{badge.d.ts → components/badge/index.d.ts} +0 -0
  157. /package/dist/{button.d.ts → components/button/index.d.ts} +0 -0
  158. /package/dist/{button-group.d.ts → components/button-group/index.d.ts} +0 -0
  159. /package/dist/{card.d.ts → components/card/index.d.ts} +0 -0
  160. /package/dist/{chip.d.ts → components/chip/index.d.ts} +0 -0
  161. /package/dist/{dialog.d.ts → components/dialog/index.d.ts} +0 -0
  162. /package/dist/{divider.d.ts → components/divider/index.d.ts} +0 -0
  163. /package/dist/{icon-button.d.ts → components/icon-button/index.d.ts} +0 -0
  164. /package/dist/{list.d.ts → components/list/index.d.ts} +0 -0
  165. /package/dist/{loading-indicator.d.ts → components/loading-indicator/index.d.ts} +0 -0
  166. /package/dist/{navigation-drawer.d.ts → components/navigation-drawer/index.d.ts} +0 -0
  167. /package/dist/{side-sheet.d.ts → components/side-sheet/index.d.ts} +0 -0
  168. /package/dist/{split-button.d.ts → components/split-button/index.d.ts} +0 -0
  169. /package/dist/{tabs.d.ts → components/tabs/index.d.ts} +0 -0
  170. /package/dist/{toolbar.d.ts → components/toolbar/index.d.ts} +0 -0
  171. /package/dist/{top-app-bar.d.ts → components/top-app-bar/index.d.ts} +0 -0
@@ -1,35 +1,36 @@
1
1
  import * as _m3_baseui_core from '@m3-baseui/core';
2
2
  import * as react from 'react';
3
3
  import * as _base_ui_react from '@base-ui/react';
4
- import * as tailwind_variants_dist_config_js from 'tailwind-variants/dist/config.js';
5
4
  import * as tailwind_variants from 'tailwind-variants';
5
+ import * as tailwind_variants_dist_config_js from 'tailwind-variants/dist/config.js';
6
+ import * as tailwind_merge from 'tailwind-merge';
6
7
 
7
8
  declare const sliderTv: tailwind_variants.TVReturnType<{
8
9
  [key: string]: {
9
- [key: string]: tailwind_variants.ClassValue | {
10
- root?: tailwind_variants.ClassValue;
11
- value?: tailwind_variants.ClassValue;
12
- track?: tailwind_variants.ClassValue;
13
- indicator?: tailwind_variants.ClassValue;
14
- thumb?: tailwind_variants.ClassValue;
15
- control?: tailwind_variants.ClassValue;
16
- tickList?: tailwind_variants.ClassValue;
17
- tick?: tailwind_variants.ClassValue;
18
- valueLabel?: tailwind_variants.ClassValue;
10
+ [key: string]: tailwind_merge.ClassNameValue | {
11
+ value?: tailwind_merge.ClassNameValue;
12
+ track?: tailwind_merge.ClassNameValue;
13
+ root?: tailwind_merge.ClassNameValue;
14
+ thumb?: tailwind_merge.ClassNameValue;
15
+ indicator?: tailwind_merge.ClassNameValue;
16
+ control?: tailwind_merge.ClassNameValue;
17
+ tickList?: tailwind_merge.ClassNameValue;
18
+ tick?: tailwind_merge.ClassNameValue;
19
+ valueLabel?: tailwind_merge.ClassNameValue;
19
20
  };
20
21
  };
21
22
  } | {
22
23
  [x: string]: {
23
- [x: string]: tailwind_variants.ClassValue | {
24
- root?: tailwind_variants.ClassValue;
25
- value?: tailwind_variants.ClassValue;
26
- track?: tailwind_variants.ClassValue;
27
- indicator?: tailwind_variants.ClassValue;
28
- thumb?: tailwind_variants.ClassValue;
29
- control?: tailwind_variants.ClassValue;
30
- tickList?: tailwind_variants.ClassValue;
31
- tick?: tailwind_variants.ClassValue;
32
- valueLabel?: tailwind_variants.ClassValue;
24
+ [x: string]: tailwind_merge.ClassNameValue | {
25
+ value?: tailwind_merge.ClassNameValue;
26
+ track?: tailwind_merge.ClassNameValue;
27
+ root?: tailwind_merge.ClassNameValue;
28
+ thumb?: tailwind_merge.ClassNameValue;
29
+ indicator?: tailwind_merge.ClassNameValue;
30
+ control?: tailwind_merge.ClassNameValue;
31
+ tickList?: tailwind_merge.ClassNameValue;
32
+ tick?: tailwind_merge.ClassNameValue;
33
+ valueLabel?: tailwind_merge.ClassNameValue;
33
34
  };
34
35
  };
35
36
  } | {}, {
@@ -44,30 +45,30 @@ declare const sliderTv: tailwind_variants.TVReturnType<{
44
45
  valueLabel: string[];
45
46
  }, undefined, tailwind_variants_dist_config_js.TVConfig<unknown, {
46
47
  [key: string]: {
47
- [key: string]: tailwind_variants.ClassValue | {
48
- root?: tailwind_variants.ClassValue;
49
- value?: tailwind_variants.ClassValue;
50
- track?: tailwind_variants.ClassValue;
51
- indicator?: tailwind_variants.ClassValue;
52
- thumb?: tailwind_variants.ClassValue;
53
- control?: tailwind_variants.ClassValue;
54
- tickList?: tailwind_variants.ClassValue;
55
- tick?: tailwind_variants.ClassValue;
56
- valueLabel?: tailwind_variants.ClassValue;
48
+ [key: string]: tailwind_merge.ClassNameValue | {
49
+ value?: tailwind_merge.ClassNameValue;
50
+ track?: tailwind_merge.ClassNameValue;
51
+ root?: tailwind_merge.ClassNameValue;
52
+ thumb?: tailwind_merge.ClassNameValue;
53
+ indicator?: tailwind_merge.ClassNameValue;
54
+ control?: tailwind_merge.ClassNameValue;
55
+ tickList?: tailwind_merge.ClassNameValue;
56
+ tick?: tailwind_merge.ClassNameValue;
57
+ valueLabel?: tailwind_merge.ClassNameValue;
57
58
  };
58
59
  };
59
60
  } | {}>, {
60
61
  [key: string]: {
61
- [key: string]: tailwind_variants.ClassValue | {
62
- root?: tailwind_variants.ClassValue;
63
- value?: tailwind_variants.ClassValue;
64
- track?: tailwind_variants.ClassValue;
65
- indicator?: tailwind_variants.ClassValue;
66
- thumb?: tailwind_variants.ClassValue;
67
- control?: tailwind_variants.ClassValue;
68
- tickList?: tailwind_variants.ClassValue;
69
- tick?: tailwind_variants.ClassValue;
70
- valueLabel?: tailwind_variants.ClassValue;
62
+ [key: string]: tailwind_merge.ClassNameValue | {
63
+ value?: tailwind_merge.ClassNameValue;
64
+ track?: tailwind_merge.ClassNameValue;
65
+ root?: tailwind_merge.ClassNameValue;
66
+ thumb?: tailwind_merge.ClassNameValue;
67
+ indicator?: tailwind_merge.ClassNameValue;
68
+ control?: tailwind_merge.ClassNameValue;
69
+ tickList?: tailwind_merge.ClassNameValue;
70
+ tick?: tailwind_merge.ClassNameValue;
71
+ valueLabel?: tailwind_merge.ClassNameValue;
71
72
  };
72
73
  };
73
74
  } | {}, {
@@ -92,16 +93,16 @@ declare const sliderTv: tailwind_variants.TVReturnType<{
92
93
  valueLabel: string[];
93
94
  }, undefined, tailwind_variants_dist_config_js.TVConfig<unknown, {
94
95
  [key: string]: {
95
- [key: string]: tailwind_variants.ClassValue | {
96
- root?: tailwind_variants.ClassValue;
97
- value?: tailwind_variants.ClassValue;
98
- track?: tailwind_variants.ClassValue;
99
- indicator?: tailwind_variants.ClassValue;
100
- thumb?: tailwind_variants.ClassValue;
101
- control?: tailwind_variants.ClassValue;
102
- tickList?: tailwind_variants.ClassValue;
103
- tick?: tailwind_variants.ClassValue;
104
- valueLabel?: tailwind_variants.ClassValue;
96
+ [key: string]: tailwind_merge.ClassNameValue | {
97
+ value?: tailwind_merge.ClassNameValue;
98
+ track?: tailwind_merge.ClassNameValue;
99
+ root?: tailwind_merge.ClassNameValue;
100
+ thumb?: tailwind_merge.ClassNameValue;
101
+ indicator?: tailwind_merge.ClassNameValue;
102
+ control?: tailwind_merge.ClassNameValue;
103
+ tickList?: tailwind_merge.ClassNameValue;
104
+ tick?: tailwind_merge.ClassNameValue;
105
+ valueLabel?: tailwind_merge.ClassNameValue;
105
106
  };
106
107
  };
107
108
  } | {}>, unknown, unknown, undefined>>;
@@ -2,7 +2,7 @@
2
2
  import { createSlider } from '@m3-baseui/core';
3
3
  import { tv as tv$1 } from 'tailwind-variants';
4
4
 
5
- // src/slider.ts
5
+ // src/components/slider/slider.ts
6
6
  var TYPESCALE = [
7
7
  "display-large",
8
8
  "display-medium",
@@ -31,7 +31,7 @@ var tv = (options, config) => tv$1(options, {
31
31
  }
32
32
  });
33
33
 
34
- // src/slider.ts
34
+ // src/components/slider/slider.ts
35
35
  var sliderTv = tv({
36
36
  slots: {
37
37
  root: "group relative flex items-center select-none w-full touch-none",
@@ -80,5 +80,5 @@ var Slider = createSlider({
80
80
  });
81
81
 
82
82
  export { Slider, sliderTv };
83
- //# sourceMappingURL=slider.js.map
84
- //# sourceMappingURL=slider.js.map
83
+ //# sourceMappingURL=index.js.map
84
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tv.ts","../../../src/components/slider/slider.ts"],"names":["baseTv"],"mappings":";;;;;AAeA,IAAM,SAAA,GAAY;AAAA,EAChB,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF,CAAA;AAEO,IAAM,EAAA,GAAS,CAAC,OAAA,EAAS,MAAA,KAC9BA,KAAO,OAAA,EAAS;AAAA,EACd,GAAG,MAAA;AAAA,EACH,aAAA,EAAe;AAAA,IACb,MAAA,EAAQ;AAAA,MACN,WAAA,EAAa;AAAA,QACX,WAAA,EAAa,CAAC,EAAE,IAAA,EAAM,CAAC,GAAG,SAAS,GAAG;AAAA;AACxC;AACF;AAEJ,CAAC,CAAA;;;AC9BI,IAAM,WAAW,EAAA,CAAG;AAAA,EACzB,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,gEAAA;AAAA,IACN,OAAA,EAAS,wCAAA;AAAA,IACT,KAAA,EAAO;AAAA,MACL,+DAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,SAAA,EAAW;AAAA,MACT,sCAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,KAAA,EAAO;AAAA,MACL,kEAAA;AAAA,MACA,oHAAA;AAAA,MACA,qHAAA;AAAA,MACA,kDAAA;AAAA,MACA,0DAAA;AAAA,MACA,8DAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,KAAA,EAAO,uDAAA;AAAA,IACP,QAAA,EAAU,sCAAA;AAAA,IACV,IAAA,EAAM;AAAA,MACJ,sFAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,UAAA,EAAY;AAAA,MACV,+GAAA;AAAA,MACA,oEAAA;AAAA,MACA;AAAA;AACF;AAEJ,CAAC;AAED,IAAM,IAAI,QAAA,EAAS;AACZ,IAAM,SAAS,YAAA,CAAa;AAAA,EACjC,IAAA,EAAM,EAAE,IAAA,EAAK;AAAA,EACb,OAAA,EAAS,EAAE,OAAA,EAAQ;AAAA,EACnB,KAAA,EAAO,EAAE,KAAA,EAAM;AAAA,EACf,SAAA,EAAW,EAAE,SAAA,EAAU;AAAA,EACvB,KAAA,EAAO,EAAE,KAAA,EAAM;AAAA,EACf,KAAA,EAAO,EAAE,KAAA,EAAM;AAAA,EACf,QAAA,EAAU,EAAE,QAAA,EAAS;AAAA,EACrB,IAAA,EAAM,EAAE,IAAA,EAAK;AAAA,EACb,UAAA,EAAY,EAAE,UAAA;AAChB,CAAC","file":"index.js","sourcesContent":["/**\n * tv.ts — a tailwind-variants factory pre-configured for the M3 typescale.\n *\n * The Tailwind v4 preset exposes the 15 typescale roles as `text-<role>`\n * font-size utilities (e.g. `text-body-small`, `text-label-large`). Stock\n * tailwind-merge does not know these custom names, so it groups them with the\n * `text-<color>` utilities and drops one when a slot sets both a color *and* a\n * typescale (the common M3 case). That silently strips either the color or the\n * type, breaking token compliance.\n *\n * Teaching tailwind-merge that the typescale names belong to the `font-size`\n * group keeps color and type independent, so both survive the merge.\n */\nimport { type TV, tv as baseTv } from 'tailwind-variants';\n\nconst TYPESCALE = [\n 'display-large',\n 'display-medium',\n 'display-small',\n 'headline-large',\n 'headline-medium',\n 'headline-small',\n 'title-large',\n 'title-medium',\n 'title-small',\n 'body-large',\n 'body-medium',\n 'body-small',\n 'label-large',\n 'label-medium',\n 'label-small',\n] as const;\n\nexport const tv: TV = (options, config) =>\n baseTv(options, {\n ...config,\n twMergeConfig: {\n extend: {\n classGroups: {\n 'font-size': [{ text: [...TYPESCALE] }],\n },\n },\n },\n });\n","/**\n * slider.ts — Tailwind classes for the M3 Slider.\n *\n * 4dp rail (surface-container-highest) with a primary active indicator and a\n * 20dp primary thumb carrying a 40dp circular state layer (hover/focus/drag).\n *\n * Disabled follows M3 per-token opacities (not a blanket fade): inactive track\n * on-surface/0.12, active track + handle on-surface/0.38. The root carries a\n * `group` so the descendant parts can react to Base UI's data-disabled on Root.\n */\nimport { createSlider } from '@m3-baseui/core';\nimport { tv } from '../../tv';\n\nexport const sliderTv = tv({\n slots: {\n root: 'group relative flex items-center select-none w-full touch-none',\n control: 'relative flex items-center w-full h-10',\n track: [\n 'relative w-full h-1 rounded-full bg-surface-container-highest',\n 'group-data-[disabled]:bg-on-surface/[0.12]',\n ],\n indicator: [\n 'absolute h-1 rounded-full bg-primary',\n 'group-data-[disabled]:bg-on-surface/[0.38]',\n ],\n thumb: [\n 'group/thumb relative size-5 rounded-full bg-primary outline-none',\n 'before:content-[\"\"] before:absolute before:left-1/2 before:top-1/2 before:-translate-x-1/2 before:-translate-y-1/2',\n 'before:size-10 before:rounded-full before:bg-primary before:opacity-0 before:transition-opacity before:duration-100',\n 'hover:before:opacity-[var(--md-sys-state-hover)]',\n 'focus-visible:before:opacity-[var(--md-sys-state-focus)]',\n 'data-[dragging]:before:opacity-[var(--md-sys-state-dragged)]',\n 'group-data-[disabled]:bg-on-surface/[0.38]',\n ],\n value: 'text-label-large text-on-surface-variant tabular-nums',\n tickList: 'pointer-events-none absolute inset-0',\n tick: [\n 'absolute size-1 -translate-x-1/2 -translate-y-1/2 rounded-full bg-on-surface-variant',\n 'data-[active]:bg-on-primary/[0.38]',\n ],\n valueLabel: [\n 'pointer-events-none absolute bottom-full left-1/2 mb-2 -translate-x-1/2 whitespace-nowrap rounded px-2 py-0.5',\n 'bg-primary text-label-large text-on-primary tabular-nums opacity-0',\n 'data-[visible]:opacity-100',\n ],\n },\n});\n\nconst s = sliderTv();\nexport const Slider = createSlider({\n root: s.root(),\n control: s.control(),\n track: s.track(),\n indicator: s.indicator(),\n thumb: s.thumb(),\n value: s.value(),\n tickList: s.tickList(),\n tick: s.tick(),\n valueLabel: s.valueLabel(),\n});\n"]}
@@ -1,31 +1,32 @@
1
1
  import * as react from 'react';
2
2
  import * as _base_ui_react from '@base-ui/react';
3
- import * as tailwind_variants_dist_config_js from 'tailwind-variants/dist/config.js';
4
3
  import * as tailwind_variants from 'tailwind-variants';
4
+ import * as tailwind_variants_dist_config_js from 'tailwind-variants/dist/config.js';
5
+ import * as tailwind_merge from 'tailwind-merge';
5
6
  export { useSnackbar } from '@m3-baseui/core';
6
7
 
7
8
  declare const snackbarTv: tailwind_variants.TVReturnType<{
8
9
  [key: string]: {
9
- [key: string]: tailwind_variants.ClassValue | {
10
- root?: tailwind_variants.ClassValue;
11
- title?: tailwind_variants.ClassValue;
12
- content?: tailwind_variants.ClassValue;
13
- close?: tailwind_variants.ClassValue;
14
- action?: tailwind_variants.ClassValue;
15
- description?: tailwind_variants.ClassValue;
16
- viewport?: tailwind_variants.ClassValue;
10
+ [key: string]: tailwind_merge.ClassNameValue | {
11
+ title?: tailwind_merge.ClassNameValue;
12
+ content?: tailwind_merge.ClassNameValue;
13
+ close?: tailwind_merge.ClassNameValue;
14
+ action?: tailwind_merge.ClassNameValue;
15
+ root?: tailwind_merge.ClassNameValue;
16
+ description?: tailwind_merge.ClassNameValue;
17
+ viewport?: tailwind_merge.ClassNameValue;
17
18
  };
18
19
  };
19
20
  } | {
20
21
  [x: string]: {
21
- [x: string]: tailwind_variants.ClassValue | {
22
- root?: tailwind_variants.ClassValue;
23
- title?: tailwind_variants.ClassValue;
24
- content?: tailwind_variants.ClassValue;
25
- close?: tailwind_variants.ClassValue;
26
- action?: tailwind_variants.ClassValue;
27
- description?: tailwind_variants.ClassValue;
28
- viewport?: tailwind_variants.ClassValue;
22
+ [x: string]: tailwind_merge.ClassNameValue | {
23
+ title?: tailwind_merge.ClassNameValue;
24
+ content?: tailwind_merge.ClassNameValue;
25
+ close?: tailwind_merge.ClassNameValue;
26
+ action?: tailwind_merge.ClassNameValue;
27
+ root?: tailwind_merge.ClassNameValue;
28
+ description?: tailwind_merge.ClassNameValue;
29
+ viewport?: tailwind_merge.ClassNameValue;
29
30
  };
30
31
  };
31
32
  } | {}, {
@@ -38,26 +39,26 @@ declare const snackbarTv: tailwind_variants.TVReturnType<{
38
39
  close: string[];
39
40
  }, undefined, tailwind_variants_dist_config_js.TVConfig<unknown, {
40
41
  [key: string]: {
41
- [key: string]: tailwind_variants.ClassValue | {
42
- root?: tailwind_variants.ClassValue;
43
- title?: tailwind_variants.ClassValue;
44
- content?: tailwind_variants.ClassValue;
45
- close?: tailwind_variants.ClassValue;
46
- action?: tailwind_variants.ClassValue;
47
- description?: tailwind_variants.ClassValue;
48
- viewport?: tailwind_variants.ClassValue;
42
+ [key: string]: tailwind_merge.ClassNameValue | {
43
+ title?: tailwind_merge.ClassNameValue;
44
+ content?: tailwind_merge.ClassNameValue;
45
+ close?: tailwind_merge.ClassNameValue;
46
+ action?: tailwind_merge.ClassNameValue;
47
+ root?: tailwind_merge.ClassNameValue;
48
+ description?: tailwind_merge.ClassNameValue;
49
+ viewport?: tailwind_merge.ClassNameValue;
49
50
  };
50
51
  };
51
52
  } | {}>, {
52
53
  [key: string]: {
53
- [key: string]: tailwind_variants.ClassValue | {
54
- root?: tailwind_variants.ClassValue;
55
- title?: tailwind_variants.ClassValue;
56
- content?: tailwind_variants.ClassValue;
57
- close?: tailwind_variants.ClassValue;
58
- action?: tailwind_variants.ClassValue;
59
- description?: tailwind_variants.ClassValue;
60
- viewport?: tailwind_variants.ClassValue;
54
+ [key: string]: tailwind_merge.ClassNameValue | {
55
+ title?: tailwind_merge.ClassNameValue;
56
+ content?: tailwind_merge.ClassNameValue;
57
+ close?: tailwind_merge.ClassNameValue;
58
+ action?: tailwind_merge.ClassNameValue;
59
+ root?: tailwind_merge.ClassNameValue;
60
+ description?: tailwind_merge.ClassNameValue;
61
+ viewport?: tailwind_merge.ClassNameValue;
61
62
  };
62
63
  };
63
64
  } | {}, {
@@ -78,14 +79,14 @@ declare const snackbarTv: tailwind_variants.TVReturnType<{
78
79
  close: string[];
79
80
  }, undefined, tailwind_variants_dist_config_js.TVConfig<unknown, {
80
81
  [key: string]: {
81
- [key: string]: tailwind_variants.ClassValue | {
82
- root?: tailwind_variants.ClassValue;
83
- title?: tailwind_variants.ClassValue;
84
- content?: tailwind_variants.ClassValue;
85
- close?: tailwind_variants.ClassValue;
86
- action?: tailwind_variants.ClassValue;
87
- description?: tailwind_variants.ClassValue;
88
- viewport?: tailwind_variants.ClassValue;
82
+ [key: string]: tailwind_merge.ClassNameValue | {
83
+ title?: tailwind_merge.ClassNameValue;
84
+ content?: tailwind_merge.ClassNameValue;
85
+ close?: tailwind_merge.ClassNameValue;
86
+ action?: tailwind_merge.ClassNameValue;
87
+ root?: tailwind_merge.ClassNameValue;
88
+ description?: tailwind_merge.ClassNameValue;
89
+ viewport?: tailwind_merge.ClassNameValue;
89
90
  };
90
91
  };
91
92
  } | {}>, unknown, unknown, undefined>>;
@@ -3,7 +3,7 @@ import { createSnackbar } from '@m3-baseui/core';
3
3
  export { useSnackbar } from '@m3-baseui/core';
4
4
  import { tv } from 'tailwind-variants';
5
5
 
6
- // src/snackbar.ts
6
+ // src/components/snackbar/snackbar.ts
7
7
  var snackbarTv = tv({
8
8
  slots: {
9
9
  viewport: [
@@ -58,5 +58,5 @@ var Snackbar = createSnackbar({
58
58
  });
59
59
 
60
60
  export { Snackbar, snackbarTv };
61
- //# sourceMappingURL=snackbar.js.map
62
- //# sourceMappingURL=snackbar.js.map
61
+ //# sourceMappingURL=index.js.map
62
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/snackbar/snackbar.ts"],"names":[],"mappings":";;;;;;AAYO,IAAM,aAAa,EAAA,CAAG;AAAA,EAC3B,KAAA,EAAO;AAAA,IACL,QAAA,EAAU;AAAA,MACR,+CAAA;AAAA;AAAA;AAAA,MAGA;AAAA,KACF;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,qEAAA;AAAA;AAAA;AAAA,MAGA,6CAAA;AAAA,MACA,8EAAA;AAAA,MACA,kBAAA;AAAA,MACA,6DAAA;AAAA,MACA,qEAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,OAAA,EAAS,sCAAA;AAAA,IACT,KAAA,EAAO,kBAAA;AAAA,IACP,WAAA,EAAa,kBAAA;AAAA,IACb,MAAA,EAAQ;AAAA,MACN,oFAAA;AAAA,MACA,yEAAA;AAAA,MACA,uCAAA;AAAA,MACA,4IAAA;AAAA,MACA,kDAAA;AAAA,MACA,0DAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,KAAA,EAAO;AAAA,MACL,+FAAA;AAAA,MACA,6EAAA;AAAA,MACA,4IAAA;AAAA,MACA,kDAAA;AAAA,MACA,0DAAA;AAAA,MACA,qDAAA;AAAA,MACA;AAAA;AACF;AAEJ,CAAC;AAED,IAAM,IAAI,UAAA,EAAW;AACd,IAAM,WAAW,cAAA,CAAe;AAAA,EACrC,QAAA,EAAU,EAAE,QAAA,EAAS;AAAA,EACrB,IAAA,EAAM,EAAE,IAAA,EAAK;AAAA,EACb,OAAA,EAAS,EAAE,OAAA,EAAQ;AAAA,EACnB,KAAA,EAAO,EAAE,KAAA,EAAM;AAAA,EACf,WAAA,EAAa,EAAE,WAAA,EAAY;AAAA,EAC3B,MAAA,EAAQ,EAAE,MAAA,EAAO;AAAA,EACjB,KAAA,EAAO,EAAE,KAAA;AACX,CAAC","file":"index.js","sourcesContent":["/**\n * snackbar.ts — tailwind-variants slots for the M3 Snackbar.\n *\n * Inverse-surface container, extra-small corners, elevation level3. The Action\n * is an inverse-primary text button with a state layer + ripple. Enter/exit key\n * off Toast's `data-starting-style` / `data-ending-style`. Same DOM as VE.\n */\nimport { createSnackbar } from '@m3-baseui/core';\nimport { tv } from 'tailwind-variants';\n\nexport { useSnackbar } from '@m3-baseui/core';\n\nexport const snackbarTv = tv({\n slots: {\n viewport: [\n 'fixed bottom-4 left-1/2 -translate-x-1/2 z-50',\n // M3 container width: cap at 672dp, clamp to the viewport on small screens.\n // Center items so content-following (w-fit) snackbars stay under the anchor.\n 'flex flex-col items-center gap-2 w-[calc(100vw-32px)] max-w-[672px]',\n ],\n root: [\n 'relative flex items-center gap-2 min-h-12 box-border pl-4 pr-2 py-2',\n // M3 container width follows content within min 344dp / max 672dp. The\n // min is clamped by 100% so it never overflows a narrower viewport.\n 'w-fit min-w-[min(344px,100%)] max-w-[672px]',\n 'rounded-extra-small bg-inverse-surface text-inverse-on-surface shadow-level3',\n 'text-body-medium',\n 'transition-[opacity,transform] duration-200 ease-emphasized',\n 'data-[starting-style]:opacity-0 data-[starting-style]:translate-y-2',\n 'data-[ending-style]:opacity-0',\n ],\n content: 'flex flex-col flex-1 min-w-0 gap-0.5',\n title: 'text-body-medium',\n description: 'text-body-medium',\n action: [\n 'relative inline-flex items-center justify-center shrink-0 h-9 px-3 overflow-hidden',\n 'rounded-extra-small bg-transparent border-0 cursor-pointer outline-none',\n 'text-inverse-primary text-label-large',\n 'before:absolute before:inset-0 before:bg-current before:opacity-0 before:pointer-events-none before:transition-opacity before:duration-100',\n 'hover:before:opacity-[var(--md-sys-state-hover)]',\n 'focus-visible:before:opacity-[var(--md-sys-state-focus)]',\n 'active:before:opacity-[var(--md-sys-state-pressed)]',\n ],\n close: [\n 'relative inline-flex items-center justify-center shrink-0 size-8 rounded-full overflow-hidden',\n 'bg-transparent border-0 cursor-pointer text-inverse-on-surface outline-none',\n 'before:absolute before:inset-0 before:bg-current before:opacity-0 before:pointer-events-none before:transition-opacity before:duration-100',\n 'hover:before:opacity-[var(--md-sys-state-hover)]',\n 'focus-visible:before:opacity-[var(--md-sys-state-focus)]',\n 'active:before:opacity-[var(--md-sys-state-pressed)]',\n 'data-[pressed]:before:opacity-[var(--md-sys-state-pressed)]',\n ],\n },\n});\n\nconst s = snackbarTv();\nexport const Snackbar = createSnackbar({\n viewport: s.viewport(),\n root: s.root(),\n content: s.content(),\n title: s.title(),\n description: s.description(),\n action: s.action(),\n close: s.close(),\n});\n"]}
@@ -2,7 +2,7 @@
2
2
  import { createSplitButton } from '@m3-baseui/core';
3
3
  import { tv as tv$1 } from 'tailwind-variants';
4
4
 
5
- // src/split-button.ts
5
+ // src/components/split-button/split-button.ts
6
6
  var TYPESCALE = [
7
7
  "display-large",
8
8
  "display-medium",
@@ -31,7 +31,7 @@ var tv = (options, config) => tv$1(options, {
31
31
  }
32
32
  });
33
33
 
34
- // src/split-button.ts
34
+ // src/components/split-button/split-button.ts
35
35
  var surface = [
36
36
  "relative inline-flex items-center justify-center h-10 overflow-hidden cursor-pointer select-none border-0 outline-none",
37
37
  "text-label-large",
@@ -122,5 +122,5 @@ var SplitButton = createSplitButton({
122
122
  });
123
123
 
124
124
  export { SplitButton, splitButtonTv };
125
- //# sourceMappingURL=split-button.js.map
126
- //# sourceMappingURL=split-button.js.map
125
+ //# sourceMappingURL=index.js.map
126
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tv.ts","../../../src/components/split-button/split-button.ts"],"names":["baseTv"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * tv.ts — a tailwind-variants factory pre-configured for the M3 typescale.\n *\n * The Tailwind v4 preset exposes the 15 typescale roles as `text-<role>`\n * font-size utilities (e.g. `text-body-small`, `text-label-large`). Stock\n * tailwind-merge does not know these custom names, so it groups them with the\n * `text-<color>` utilities and drops one when a slot sets both a color *and* a\n * typescale (the common M3 case). That silently strips either the color or the\n * type, breaking token compliance.\n *\n * Teaching tailwind-merge that the typescale names belong to the `font-size`\n * group keeps color and type independent, so both survive the merge.\n */\nimport { type TV, tv as baseTv } from 'tailwind-variants';\n\nconst TYPESCALE = [\n 'display-large',\n 'display-medium',\n 'display-small',\n 'headline-large',\n 'headline-medium',\n 'headline-small',\n 'title-large',\n 'title-medium',\n 'title-small',\n 'body-large',\n 'body-medium',\n 'body-small',\n 'label-large',\n 'label-medium',\n 'label-small',\n] as const;\n\nexport const tv: TV = (options, config) =>\n baseTv(options, {\n ...config,\n twMergeConfig: {\n extend: {\n classGroups: {\n 'font-size': [{ text: [...TYPESCALE] }],\n },\n },\n },\n });\n","/**\n * split-button.ts — tailwind-variants slots for the M3 SplitButton.\n *\n * Two 40dp surfaces joined by a 2dp seam: the leading primary-action button\n * keeps its outer (start) corner full and reduces the seam (end) corner; the\n * trailing menu trigger mirrors it. Both share the variant container color. The\n * trigger carries `group` so the default chevron can rotate via Base UI's\n * `data-[popup-open]`. The dropdown reuses the M3 menu surface. State layer is\n * the `::before` overlay; the pointer ripple is added by the factory. Same DOM\n * as the VE build.\n */\nimport { createSplitButton } from '@m3-baseui/core';\nimport { tv } from '../../tv';\n\n// Shared surface base for both the leading + trailing buttons.\nconst surface = [\n 'relative inline-flex items-center justify-center h-10 overflow-hidden cursor-pointer select-none border-0 outline-none',\n 'text-label-large',\n 'transition-[background-color,color,border-color] duration-200 ease-standard',\n 'before:absolute before:inset-0 before:bg-current before:opacity-0 before:pointer-events-none before:transition-opacity before:duration-100',\n 'hover:before:opacity-[var(--md-sys-state-hover)]',\n 'focus-visible:before:opacity-[var(--md-sys-state-focus)]',\n 'active:before:opacity-[var(--md-sys-state-pressed)]',\n 'data-[pressed]:before:opacity-[var(--md-sys-state-pressed)]',\n 'focus-visible:outline-[3px] focus-visible:outline-offset-2 focus-visible:outline-secondary',\n 'disabled:pointer-events-none disabled:before:opacity-0',\n 'data-[disabled]:pointer-events-none data-[disabled]:before:opacity-0',\n];\n\n// Per-variant container colors (identical on both surfaces). M3 disabled is\n// per-token (container on-surface/12, label on-surface/38), not a blanket fade.\nconst VARIANT_FILLED = [\n 'bg-primary text-on-primary',\n 'disabled:bg-on-surface/12 disabled:text-on-surface/38',\n 'data-[disabled]:bg-on-surface/12 data-[disabled]:text-on-surface/38',\n];\nconst VARIANT_TONAL = [\n 'bg-secondary-container text-on-secondary-container',\n 'disabled:bg-on-surface/12 disabled:text-on-surface/38',\n 'data-[disabled]:bg-on-surface/12 data-[disabled]:text-on-surface/38',\n];\nconst VARIANT_OUTLINED = [\n 'bg-transparent text-primary border border-outline',\n 'disabled:text-on-surface/38 disabled:border-on-surface/12',\n 'data-[disabled]:text-on-surface/38 data-[disabled]:border-on-surface/12',\n];\nconst VARIANT_ELEVATED = [\n 'bg-surface-container-low text-primary shadow-level1',\n 'disabled:bg-on-surface/12 disabled:text-on-surface/38 disabled:shadow-none',\n 'data-[disabled]:bg-on-surface/12 data-[disabled]:text-on-surface/38 data-[disabled]:shadow-none',\n];\nconst VARIANT_TEXT = [\n 'bg-transparent text-primary',\n 'disabled:text-on-surface/38',\n 'data-[disabled]:text-on-surface/38',\n];\n\nexport const splitButtonTv = tv({\n slots: {\n group: 'inline-flex items-center gap-0.5',\n // leading: outer (start) corner full, seam (end) corner reduced.\n leading: [...surface, 'gap-2 px-6 rounded-s-full rounded-e-small'],\n // trailing: seam (start) corner reduced, outer (end) corner full.\n trailing: [...surface, 'group gap-1 px-3 rounded-s-small rounded-e-full'],\n chevron: [\n 'inline-flex items-center justify-center shrink-0 [&>svg]:size-[18px]',\n 'transition-transform duration-200 ease-standard group-data-[popup-open]:rotate-180',\n ],\n popup: [\n 'min-w-[112px] max-w-[280px] py-2',\n 'bg-surface-container text-on-surface rounded-extra-small shadow-level2',\n 'origin-[var(--transform-origin)] transition-[opacity,transform] duration-150 ease-standard',\n 'data-[starting-style]:opacity-0 data-[starting-style]:scale-95',\n 'data-[ending-style]:opacity-0',\n 'focus:outline-none',\n ],\n item: [\n 'relative flex items-center gap-3 h-12 px-3 overflow-hidden cursor-pointer select-none outline-none',\n 'text-label-large text-on-surface',\n 'before:absolute before:inset-0 before:bg-current before:opacity-0 before:pointer-events-none before:transition-opacity before:duration-100',\n 'hover:before:opacity-[var(--md-sys-state-hover)]',\n 'data-[highlighted]:before:opacity-[var(--md-sys-state-hover)]',\n 'active:before:opacity-[var(--md-sys-state-pressed)]',\n 'data-[disabled]:text-on-surface/[0.38] data-[disabled]:before:opacity-0 data-[disabled]:pointer-events-none',\n ],\n },\n variants: {\n variant: {\n filled: { leading: VARIANT_FILLED, trailing: VARIANT_FILLED },\n tonal: { leading: VARIANT_TONAL, trailing: VARIANT_TONAL },\n outlined: { leading: VARIANT_OUTLINED, trailing: VARIANT_OUTLINED },\n elevated: { leading: VARIANT_ELEVATED, trailing: VARIANT_ELEVATED },\n text: { leading: VARIANT_TEXT, trailing: VARIANT_TEXT },\n },\n },\n defaultVariants: {\n variant: 'filled',\n },\n});\n\nexport const SplitButton = createSplitButton({\n group: splitButtonTv().group(),\n leading: (variant) => splitButtonTv({ variant }).leading(),\n trailing: (variant) => splitButtonTv({ variant }).trailing(),\n chevron: splitButtonTv().chevron(),\n popup: splitButtonTv().popup(),\n item: splitButtonTv().item(),\n});\n"]}
@@ -0,0 +1,73 @@
1
+ import * as _m3_baseui_core from '@m3-baseui/core';
2
+ import * as react from 'react';
3
+ import * as _base_ui_react from '@base-ui/react';
4
+ import * as tailwind_variants from 'tailwind-variants';
5
+ import * as tailwind_variants_dist_config_js from 'tailwind-variants/dist/config.js';
6
+ import * as tailwind_merge from 'tailwind-merge';
7
+
8
+ declare const switchTv: tailwind_variants.TVReturnType<{
9
+ [key: string]: {
10
+ [key: string]: tailwind_merge.ClassNameValue | {
11
+ root?: tailwind_merge.ClassNameValue;
12
+ thumb?: tailwind_merge.ClassNameValue;
13
+ iconChecked?: tailwind_merge.ClassNameValue;
14
+ iconUnchecked?: tailwind_merge.ClassNameValue;
15
+ };
16
+ };
17
+ } | {
18
+ [x: string]: {
19
+ [x: string]: tailwind_merge.ClassNameValue | {
20
+ root?: tailwind_merge.ClassNameValue;
21
+ thumb?: tailwind_merge.ClassNameValue;
22
+ iconChecked?: tailwind_merge.ClassNameValue;
23
+ iconUnchecked?: tailwind_merge.ClassNameValue;
24
+ };
25
+ };
26
+ } | {}, {
27
+ root: string[];
28
+ thumb: string[];
29
+ iconChecked: string[];
30
+ iconUnchecked: string[];
31
+ }, undefined, tailwind_variants_dist_config_js.TVConfig<unknown, {
32
+ [key: string]: {
33
+ [key: string]: tailwind_merge.ClassNameValue | {
34
+ root?: tailwind_merge.ClassNameValue;
35
+ thumb?: tailwind_merge.ClassNameValue;
36
+ iconChecked?: tailwind_merge.ClassNameValue;
37
+ iconUnchecked?: tailwind_merge.ClassNameValue;
38
+ };
39
+ };
40
+ } | {}>, {
41
+ [key: string]: {
42
+ [key: string]: tailwind_merge.ClassNameValue | {
43
+ root?: tailwind_merge.ClassNameValue;
44
+ thumb?: tailwind_merge.ClassNameValue;
45
+ iconChecked?: tailwind_merge.ClassNameValue;
46
+ iconUnchecked?: tailwind_merge.ClassNameValue;
47
+ };
48
+ };
49
+ } | {}, {
50
+ root: string[];
51
+ thumb: string[];
52
+ iconChecked: string[];
53
+ iconUnchecked: string[];
54
+ }, tailwind_variants.TVReturnType<unknown, {
55
+ root: string[];
56
+ thumb: string[];
57
+ iconChecked: string[];
58
+ iconUnchecked: string[];
59
+ }, undefined, tailwind_variants_dist_config_js.TVConfig<unknown, {
60
+ [key: string]: {
61
+ [key: string]: tailwind_merge.ClassNameValue | {
62
+ root?: tailwind_merge.ClassNameValue;
63
+ thumb?: tailwind_merge.ClassNameValue;
64
+ iconChecked?: tailwind_merge.ClassNameValue;
65
+ iconUnchecked?: tailwind_merge.ClassNameValue;
66
+ };
67
+ };
68
+ } | {}>, unknown, unknown, undefined>>;
69
+ declare const Switch: react.ForwardRefExoticComponent<Omit<Omit<_base_ui_react.SwitchRootProps, "ref"> & react.RefAttributes<HTMLElement>, "ref"> & {
70
+ icons?: _m3_baseui_core.SwitchIcons;
71
+ } & react.RefAttributes<HTMLElement>>;
72
+
73
+ export { Switch, switchTv };
@@ -2,7 +2,7 @@
2
2
  import { createSwitch } from '@m3-baseui/core';
3
3
  import { tv } from 'tailwind-variants';
4
4
 
5
- // src/switch.ts
5
+ // src/components/switch/switch.ts
6
6
  var switchTv = tv({
7
7
  slots: {
8
8
  root: [
@@ -65,5 +65,5 @@ var Switch = createSwitch({
65
65
  });
66
66
 
67
67
  export { Switch, switchTv };
68
- //# sourceMappingURL=switch.js.map
69
- //# sourceMappingURL=switch.js.map
68
+ //# sourceMappingURL=index.js.map
69
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/switch/switch.ts"],"names":[],"mappings":";;;;;AAUO,IAAM,WAAW,EAAA,CAAG;AAAA,EACzB,KAAA,EAAO;AAAA,IACL,IAAA,EAAM;AAAA,MACJ,kGAAA;AAAA,MACA,6CAAA;AAAA,MACA,8CAAA;AAAA,MACA,yDAAA;AAAA,MACA,4FAAA;AAAA,MACA,qCAAA;AAAA;AAAA;AAAA,MAGA,sFAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,KAAA,EAAO;AAAA,MACL,sFAAA;AAAA,MACA,kCAAA;AAAA,MACA,4BAAA;AAAA;AAAA;AAAA;AAAA,MAIA,iFAAA;AAAA,MACA,2GAAA;AAAA;AAAA,MAEA,mFAAA;AAAA;AAAA;AAAA,MAGA,gHAAA;AAAA,MACA,0JAAA;AAAA;AAAA,MAEA,yCAAA;AAAA,MACA,uEAAA;AAAA;AAAA,MAEA,wCAAA;AAAA,MACA,iDAAA;AAAA;AAAA,MAEA,oHAAA;AAAA,MACA,qHAAA;AAAA,MACA,wDAAA;AAAA,MACA,gEAAA;AAAA,MACA;AAAA,KACF;AAAA;AAAA,IAEA,WAAA,EAAa;AAAA,MACX,qEAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,aAAA,EAAe;AAAA,MACb,qEAAA;AAAA,MACA;AAAA;AACF;AAEJ,CAAC;AAED,IAAM,IAAI,QAAA,EAAS;AACZ,IAAM,SAAS,YAAA,CAAa;AAAA,EACjC,IAAA,EAAM,EAAE,IAAA,EAAK;AAAA,EACb,KAAA,EAAO,EAAE,KAAA,EAAM;AAAA,EACf,WAAA,EAAa,EAAE,WAAA,EAAY;AAAA,EAC3B,aAAA,EAAe,EAAE,aAAA;AACnB,CAAC","file":"index.js","sourcesContent":["/**\n * switch.ts — tailwind-variants slots for the M3 Switch.\n *\n * Track + handle styled off Base UI's data-checked/data-disabled state. The\n * thumb grows and slides when checked; a 40dp circular state layer (`before:`)\n * reacts to hover/focus/press on the root via the `group` utility.\n */\nimport { createSwitch } from '@m3-baseui/core';\nimport { tv } from 'tailwind-variants';\n\nexport const switchTv = tv({\n slots: {\n root: [\n 'group relative inline-flex shrink-0 w-[52px] h-8 rounded-full border-2 box-border cursor-pointer',\n 'bg-surface-container-highest border-outline',\n 'transition-colors duration-200 ease-standard',\n 'data-[checked]:bg-primary data-[checked]:border-primary',\n 'focus-visible:outline-[3px] focus-visible:outline-offset-2 focus-visible:outline-secondary',\n 'data-[disabled]:pointer-events-none',\n // M3 disabled: faint track + outline (unselected); on-surface/12 track,\n // no outline (selected). Not a blanket element opacity.\n 'data-[disabled]:bg-surface-container-highest/12 data-[disabled]:border-on-surface/12',\n 'data-[disabled]:data-[checked]:bg-on-surface/12 data-[disabled]:data-[checked]:border-transparent',\n ],\n thumb: [\n 'absolute top-1/2 -translate-y-1/2 left-[6px] size-4 rounded-full pointer-events-none',\n 'flex items-center justify-center',\n 'bg-outline text-on-surface',\n // M3 spatial motion: the handle slides/grows with emphasized easing over\n // 300ms (token-backed). emphasized is overshoot-free, so it stays safe for\n // the handle's color transitions too (no spring flicker on background-color).\n 'transition-all ease-emphasized duration-[var(--md-sys-motion-duration-medium2)]',\n 'data-[checked]:left-[22px] data-[checked]:size-6 data-[checked]:bg-on-primary data-[checked]:text-primary',\n // M3 with-icon: the unchecked handle grows to 24dp to fit its icon\n 'data-[with-icon]:data-[unchecked]:left-1 data-[with-icon]:data-[unchecked]:size-6',\n // M3 handle interaction colors: unselected outline→on-surface-variant,\n // selected on-primary→primary-container on hover/focus/press\n 'group-hover:bg-on-surface-variant group-focus-visible:bg-on-surface-variant group-active:bg-on-surface-variant',\n 'group-hover:data-[checked]:bg-primary-container group-focus-visible:data-[checked]:bg-primary-container group-active:data-[checked]:bg-primary-container',\n // M3 squish: handle grows to 28px while pressed, staying on its side\n 'group-active:left-0 group-active:size-7',\n 'group-active:data-[checked]:left-5 group-active:data-[checked]:size-7',\n // M3 disabled handle: on-surface/38 (unselected), surface (selected)\n 'group-data-[disabled]:bg-on-surface/38',\n 'group-data-[disabled]:data-[checked]:bg-surface',\n // 40dp circular state layer centered on the thumb\n 'before:content-[\"\"] before:absolute before:left-1/2 before:top-1/2 before:-translate-x-1/2 before:-translate-y-1/2',\n 'before:size-10 before:rounded-full before:bg-current before:opacity-0 before:transition-opacity before:duration-100',\n 'group-hover:before:opacity-[var(--md-sys-state-hover)]',\n 'group-focus-visible:before:opacity-[var(--md-sys-state-focus)]',\n 'group-active:before:opacity-[var(--md-sys-state-pressed)]',\n ],\n // Handle icons (16dp). Both stay mounted; the root's data-checked reveals one.\n iconChecked: [\n 'hidden group-data-[checked]:inline-flex items-center justify-center',\n 'text-on-primary-container [&>svg]:size-4',\n ],\n iconUnchecked: [\n 'inline-flex group-data-[checked]:hidden items-center justify-center',\n 'text-surface-container-highest [&>svg]:size-4',\n ],\n },\n});\n\nconst s = switchTv();\nexport const Switch = createSwitch({\n root: s.root(),\n thumb: s.thumb(),\n iconChecked: s.iconChecked(),\n iconUnchecked: s.iconUnchecked(),\n});\n"]}
@@ -2,7 +2,7 @@
2
2
  import { createTabs } from '@m3-baseui/core';
3
3
  import { tv as tv$1 } from 'tailwind-variants';
4
4
 
5
- // src/tabs.ts
5
+ // src/components/tabs/tabs.ts
6
6
  var TYPESCALE = [
7
7
  "display-large",
8
8
  "display-medium",
@@ -31,7 +31,7 @@ var tv = (options, config) => tv$1(options, {
31
31
  }
32
32
  });
33
33
 
34
- // src/tabs.ts
34
+ // src/components/tabs/tabs.ts
35
35
  var tabsTv = tv({
36
36
  slots: {
37
37
  root: "flex flex-col",
@@ -93,5 +93,5 @@ var Tabs = createTabs((variant) => {
93
93
  });
94
94
 
95
95
  export { Tabs, tabsTv };
96
- //# sourceMappingURL=tabs.js.map
97
- //# sourceMappingURL=tabs.js.map
96
+ //# sourceMappingURL=index.js.map
97
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tv.ts","../../../src/components/tabs/tabs.ts"],"names":["baseTv"],"mappings":";;;;;AAeA,IAAM,SAAA,GAAY;AAAA,EAChB,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF,CAAA;AAEO,IAAM,EAAA,GAAS,CAAC,OAAA,EAAS,MAAA,KAC9BA,KAAO,OAAA,EAAS;AAAA,EACd,GAAG,MAAA;AAAA,EACH,aAAA,EAAe;AAAA,IACb,MAAA,EAAQ;AAAA,MACN,WAAA,EAAa;AAAA,QACX,WAAA,EAAa,CAAC,EAAE,IAAA,EAAM,CAAC,GAAG,SAAS,GAAG;AAAA;AACxC;AACF;AAEJ,CAAC,CAAA;;;ACjCI,IAAM,SAAS,EAAA,CAAG;AAAA,EACvB,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,eAAA;AAAA,IACN,IAAA,EAAM;AAAA,MACJ,+CAAA;AAAA;AAAA,MAEA,iEAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,GAAA,EAAK;AAAA,MACH,oFAAA;AAAA,MACA,kFAAA;AAAA,MACA,yBAAA;AAAA;AAAA,MAEA,0EAAA;AAAA,MACA,4IAAA;AAAA,MACA,kDAAA;AAAA,MACA,0DAAA;AAAA,MACA,qDAAA;AAAA;AAAA;AAAA,MAGA,6GAAA;AAAA;AAAA;AAAA,MAGA;AAAA,KACF;AAAA,IACA,SAAA,EAAW;AAAA,MACT,qCAAA;AAAA,MACA,kEAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,KAAA,EAAO;AAAA,GACT;AAAA,EACA,QAAA,EAAU;AAAA,IACR,OAAA,EAAS;AAAA;AAAA;AAAA,MAGP,OAAA,EAAS;AAAA,QACP,GAAA,EAAK,mGAAA;AAAA,QACL,SAAA,EAAW;AAAA,OACb;AAAA;AAAA,MAEA,SAAA,EAAW,EAAE,GAAA,EAAK,+BAAA,EAAiC,WAAW,SAAA;AAAU;AAC1E,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,OAAA,EAAS;AAAA;AAEb,CAAC;AAEM,IAAM,IAAA,GAAO,UAAA,CAAW,CAAC,OAAA,KAAY;AAC1C,EAAA,MAAM,CAAA,GAAI,MAAA,CAAO,EAAE,OAAA,EAAS,CAAA;AAC5B,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,EAAE,IAAA,EAAK;AAAA,IACb,IAAA,EAAM,EAAE,IAAA,EAAK;AAAA,IACb,GAAA,EAAK,EAAE,GAAA,EAAI;AAAA,IACX,SAAA,EAAW,EAAE,SAAA,EAAU;AAAA,IACvB,KAAA,EAAO,EAAE,KAAA;AAAM,GACjB;AACF,CAAC","file":"index.js","sourcesContent":["/**\n * tv.ts — a tailwind-variants factory pre-configured for the M3 typescale.\n *\n * The Tailwind v4 preset exposes the 15 typescale roles as `text-<role>`\n * font-size utilities (e.g. `text-body-small`, `text-label-large`). Stock\n * tailwind-merge does not know these custom names, so it groups them with the\n * `text-<color>` utilities and drops one when a slot sets both a color *and* a\n * typescale (the common M3 case). That silently strips either the color or the\n * type, breaking token compliance.\n *\n * Teaching tailwind-merge that the typescale names belong to the `font-size`\n * group keeps color and type independent, so both survive the merge.\n */\nimport { type TV, tv as baseTv } from 'tailwind-variants';\n\nconst TYPESCALE = [\n 'display-large',\n 'display-medium',\n 'display-small',\n 'headline-large',\n 'headline-medium',\n 'headline-small',\n 'title-large',\n 'title-medium',\n 'title-small',\n 'body-large',\n 'body-medium',\n 'body-small',\n 'label-large',\n 'label-medium',\n 'label-small',\n] as const;\n\nexport const tv: TV = (options, config) =>\n baseTv(options, {\n ...config,\n twMergeConfig: {\n extend: {\n classGroups: {\n 'font-size': [{ text: [...TYPESCALE] }],\n },\n },\n },\n });\n","/**\n * tabs.ts — tailwind-variants slots for the M3 Tabs.\n *\n * The active-tab underline reads Base UI's --active-tab-width/left CSS vars on\n * the indicator. The `variant` recolors the active tab (primary → primary,\n * secondary → on-surface). Tabs carry a `before:` state layer + ripple.\n */\nimport { createTabs } from '@m3-baseui/core';\nimport { tv } from '../../tv';\n\nexport const tabsTv = tv({\n slots: {\n root: 'flex flex-col',\n list: [\n 'relative flex border-b border-surface-variant',\n // M3 scrollable tabs: horizontal overflow, no wrap, hidden scrollbar.\n 'data-[scrollable]:overflow-x-auto data-[scrollable]:flex-nowrap',\n 'data-[scrollable]:[scrollbar-width:none] data-[scrollable]:[&::-webkit-scrollbar]:hidden',\n ],\n tab: [\n 'relative flex shrink-0 items-center justify-center gap-2 h-12 px-4 overflow-hidden',\n 'cursor-pointer select-none border-0 bg-transparent outline-none text-title-small',\n 'text-on-surface-variant',\n // Icon slot (24dp), centered.\n '[&_[data-slot=tab-icon]]:inline-flex [&_[data-slot=tab-icon]>svg]:size-6',\n 'before:absolute before:inset-0 before:bg-current before:opacity-0 before:pointer-events-none before:transition-opacity before:duration-100',\n 'hover:before:opacity-[var(--md-sys-state-hover)]',\n 'focus-visible:before:opacity-[var(--md-sys-state-focus)]',\n 'active:before:opacity-[var(--md-sys-state-pressed)]',\n // M3 disabled (per-token, not a blanket fade): label + icon on-surface/0.38,\n // no state layer. currentColor carries the dim to the icon slot.\n 'data-[disabled]:text-on-surface/[0.38] data-[disabled]:before:opacity-0 data-[disabled]:pointer-events-none',\n // A disabled tab that is also the active value stays dimmed: the variant's\n // data-[active] color has equal specificity, so a combined selector wins.\n 'data-[disabled]:data-[active]:text-on-surface/[0.38]',\n ],\n indicator: [\n 'absolute bottom-0 left-0 bg-primary',\n 'w-[var(--active-tab-width)] translate-x-[var(--active-tab-left)]',\n 'transition-all duration-200 ease-standard',\n ],\n panel: 'p-4 outline-none',\n },\n variants: {\n variant: {\n // primary: 3dp active indicator with rounded top corners; icon stacks\n // above the label (64dp tall) when a tab carries an icon.\n primary: {\n tab: 'data-[active]:text-primary data-[with-icon]:flex-col data-[with-icon]:h-16 data-[with-icon]:gap-1',\n indicator: 'h-[3px] rounded-t-[3px]',\n },\n // secondary: 2dp square active indicator, active label = on-surface\n secondary: { tab: 'data-[active]:text-on-surface', indicator: 'h-[2px]' },\n },\n },\n defaultVariants: {\n variant: 'primary',\n },\n});\n\nexport const Tabs = createTabs((variant) => {\n const s = tabsTv({ variant });\n return {\n root: s.root(),\n list: s.list(),\n tab: s.tab(),\n indicator: s.indicator(),\n panel: s.panel(),\n };\n});\nexport type { TabsVariant } from '@m3-baseui/core';\n"]}
@@ -1,6 +1,6 @@
1
1
  import * as react from 'react';
2
2
  import * as _m3_baseui_core from '@m3-baseui/core';
3
- export { TextFieldProps, TextFieldVariant } from '@m3-baseui/core';
3
+ export { TextFieldIconAction, TextFieldProps, TextFieldVariant } from '@m3-baseui/core';
4
4
  import * as tailwind_variants from 'tailwind-variants';
5
5
  import * as tailwind_variants_dist_config_js from 'tailwind-variants/dist/config.js';
6
6
 
@@ -24,6 +24,8 @@ declare const textFieldTv: tailwind_variants.TVReturnType<{
24
24
  label: string[];
25
25
  leadingIcon: string;
26
26
  trailingIcon: string;
27
+ leadingIconButton: string[];
28
+ trailingIconButton: string[];
27
29
  supporting: string[];
28
30
  supportingText: string;
29
31
  counter: string;
@@ -71,6 +73,8 @@ declare const textFieldTv: tailwind_variants.TVReturnType<{
71
73
  label: string[];
72
74
  leadingIcon: string;
73
75
  trailingIcon: string;
76
+ leadingIconButton: string[];
77
+ trailingIconButton: string[];
74
78
  supporting: string[];
75
79
  supportingText: string;
76
80
  counter: string;
@@ -94,6 +98,8 @@ declare const textFieldTv: tailwind_variants.TVReturnType<{
94
98
  label: string[];
95
99
  leadingIcon: string;
96
100
  trailingIcon: string;
101
+ leadingIconButton: string[];
102
+ trailingIconButton: string[];
97
103
  supporting: string[];
98
104
  supportingText: string;
99
105
  counter: string;