@ngrok/mantle 0.60.2 → 0.61.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 (123) hide show
  1. package/dist/accordion.js +1 -1
  2. package/dist/accordion.js.map +1 -1
  3. package/dist/alert-dialog.js +1 -1
  4. package/dist/alert-dialog.js.map +1 -1
  5. package/dist/alert.js +1 -1
  6. package/dist/alert.js.map +1 -1
  7. package/dist/anchor.js +1 -1
  8. package/dist/anchor.js.map +1 -1
  9. package/dist/auto-scroll-to-hash.js +1 -1
  10. package/dist/auto-scroll-to-hash.js.map +1 -1
  11. package/dist/badge.js +1 -1
  12. package/dist/badge.js.map +1 -1
  13. package/dist/button.js +1 -1
  14. package/dist/calendar.js +1 -1
  15. package/dist/calendar.js.map +1 -1
  16. package/dist/card.js +1 -1
  17. package/dist/card.js.map +1 -1
  18. package/dist/checkbox.js.map +1 -1
  19. package/dist/{chunk-GYPSB3OK.js → chunk-7MJQGBE4.js} +1 -1
  20. package/dist/chunk-7MJQGBE4.js.map +1 -0
  21. package/dist/{chunk-PEGWGFY7.js → chunk-B2CXQETQ.js} +1 -1
  22. package/dist/chunk-B2CXQETQ.js.map +1 -0
  23. package/dist/{chunk-JATU64S7.js → chunk-ERCBHCUY.js} +2 -2
  24. package/dist/chunk-ERCBHCUY.js.map +1 -0
  25. package/dist/{chunk-X7RUBITL.js → chunk-GLSHD37P.js} +1 -1
  26. package/dist/chunk-GLSHD37P.js.map +1 -0
  27. package/dist/{chunk-UGWSBMHH.js → chunk-HG2MWNPU.js} +2 -2
  28. package/dist/chunk-HG2MWNPU.js.map +1 -0
  29. package/dist/{chunk-2PHWBRBD.js → chunk-HL2HWYKP.js} +2 -2
  30. package/dist/{chunk-2PHWBRBD.js.map → chunk-HL2HWYKP.js.map} +1 -1
  31. package/dist/{chunk-YKYEISYH.js → chunk-LURP5WQR.js} +2 -2
  32. package/dist/{chunk-YKYEISYH.js.map → chunk-LURP5WQR.js.map} +1 -1
  33. package/dist/{chunk-OE4YWO7O.js → chunk-NQZYWYVH.js} +2 -2
  34. package/dist/chunk-NQZYWYVH.js.map +1 -0
  35. package/dist/{chunk-UNFO4DZV.js → chunk-ODDNPNLN.js} +1 -1
  36. package/dist/chunk-ODDNPNLN.js.map +1 -0
  37. package/dist/{chunk-3C5O3AQA.js → chunk-OP6JMBKJ.js} +1 -1
  38. package/dist/{chunk-3C5O3AQA.js.map → chunk-OP6JMBKJ.js.map} +1 -1
  39. package/dist/{chunk-BR4ZHK5A.js → chunk-RLW7NBZU.js} +2 -2
  40. package/dist/chunk-RLW7NBZU.js.map +1 -0
  41. package/dist/{chunk-2NIR7PCL.js → chunk-SBVSECWW.js} +1 -1
  42. package/dist/{chunk-2NIR7PCL.js.map → chunk-SBVSECWW.js.map} +1 -1
  43. package/dist/{chunk-M6TUHYJA.js → chunk-SK2YHT6N.js} +2 -2
  44. package/dist/{chunk-M6TUHYJA.js.map → chunk-SK2YHT6N.js.map} +1 -1
  45. package/dist/{chunk-V4TWM6RF.js → chunk-SMYI7SUP.js} +1 -1
  46. package/dist/{chunk-V4TWM6RF.js.map → chunk-SMYI7SUP.js.map} +1 -1
  47. package/dist/{chunk-STC52KT6.js → chunk-U5GD6FHU.js} +1 -1
  48. package/dist/chunk-U5GD6FHU.js.map +1 -0
  49. package/dist/chunk-Y7RHMF43.js +2 -0
  50. package/dist/chunk-Y7RHMF43.js.map +1 -0
  51. package/dist/{chunk-3AUCEZTZ.js → chunk-ZCTK5X4D.js} +2 -2
  52. package/dist/{chunk-3AUCEZTZ.js.map → chunk-ZCTK5X4D.js.map} +1 -1
  53. package/dist/code-block.js +1 -1
  54. package/dist/code-block.js.map +1 -1
  55. package/dist/color.js.map +1 -1
  56. package/dist/combobox.js +1 -1
  57. package/dist/combobox.js.map +1 -1
  58. package/dist/command.js +1 -1
  59. package/dist/command.js.map +1 -1
  60. package/dist/data-table.d.ts +2 -2
  61. package/dist/data-table.js +1 -1
  62. package/dist/data-table.js.map +1 -1
  63. package/dist/dialog.js +1 -1
  64. package/dist/{direction-veAOo2is.d.ts → direction-DHheuUag.d.ts} +1 -1
  65. package/dist/dropdown-menu.js +1 -1
  66. package/dist/dropdown-menu.js.map +1 -1
  67. package/dist/flag.js +1 -1
  68. package/dist/flag.js.map +1 -1
  69. package/dist/hooks.js +1 -1
  70. package/dist/hooks.js.map +1 -1
  71. package/dist/hover-card.js.map +1 -1
  72. package/dist/icon.js +1 -1
  73. package/dist/icons.d.ts +2 -2
  74. package/dist/icons.js +1 -1
  75. package/dist/input.js +1 -1
  76. package/dist/input.js.map +1 -1
  77. package/dist/label.js +1 -1
  78. package/dist/label.js.map +1 -1
  79. package/dist/mantle.css +206 -241
  80. package/dist/media-object.js +1 -1
  81. package/dist/media-object.js.map +1 -1
  82. package/dist/pagination.js +1 -1
  83. package/dist/pagination.js.map +1 -1
  84. package/dist/popover.js.map +1 -1
  85. package/dist/progress.js.map +1 -1
  86. package/dist/radio-group.js +1 -1
  87. package/dist/radio-group.js.map +1 -1
  88. package/dist/sandboxed-on-click.d.ts +1 -1
  89. package/dist/sandboxed-on-click.js +1 -1
  90. package/dist/sandboxed-on-click.js.map +1 -1
  91. package/dist/select.js +1 -1
  92. package/dist/separator.js +1 -1
  93. package/dist/sheet.js +1 -1
  94. package/dist/sheet.js.map +1 -1
  95. package/dist/skeleton.js +1 -1
  96. package/dist/skeleton.js.map +1 -1
  97. package/dist/slot.js +1 -1
  98. package/dist/sorting.d.ts +1 -1
  99. package/dist/sorting.js +1 -1
  100. package/dist/switch.js +1 -1
  101. package/dist/switch.js.map +1 -1
  102. package/dist/table.js +1 -1
  103. package/dist/tabs.js +1 -1
  104. package/dist/tabs.js.map +1 -1
  105. package/dist/theme.d.ts +2 -2
  106. package/dist/theme.js +1 -1
  107. package/dist/{themes-Jy9DUcQe.d.ts → themes-Bi46K9ZW.d.ts} +1 -1
  108. package/dist/toast.d.ts +1 -1
  109. package/dist/toast.js +1 -1
  110. package/dist/tooltip.js.map +1 -1
  111. package/dist/types.js +1 -1
  112. package/package.json +165 -165
  113. package/dist/chunk-BR4ZHK5A.js.map +0 -1
  114. package/dist/chunk-GC6NS32Q.js +0 -2
  115. package/dist/chunk-GC6NS32Q.js.map +0 -1
  116. package/dist/chunk-GYPSB3OK.js.map +0 -1
  117. package/dist/chunk-JATU64S7.js.map +0 -1
  118. package/dist/chunk-OE4YWO7O.js.map +0 -1
  119. package/dist/chunk-PEGWGFY7.js.map +0 -1
  120. package/dist/chunk-STC52KT6.js.map +0 -1
  121. package/dist/chunk-UGWSBMHH.js.map +0 -1
  122. package/dist/chunk-UNFO4DZV.js.map +0 -1
  123. package/dist/chunk-X7RUBITL.js.map +0 -1
package/package.json CHANGED
@@ -1,82 +1,22 @@
1
1
  {
2
2
  "name": "@ngrok/mantle",
3
+ "version": "0.61.0",
3
4
  "description": "mantle is ngrok's UI library and design system.",
4
- "author": "ngrok",
5
- "license": "MIT",
6
- "version": "0.60.2",
7
5
  "homepage": "https://mantle.ngrok.com",
6
+ "license": "MIT",
7
+ "author": "ngrok",
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "https://github.com/ngrok-oss/mantle"
11
11
  },
12
- "sideEffects": [
13
- "*.css"
14
- ],
15
- "type": "module",
16
- "browserslist": [
17
- "last 2 years, not dead, > 0.2%"
18
- ],
19
12
  "files": [
20
13
  "dist",
21
14
  "package.json"
22
15
  ],
23
- "engines": {
24
- "node": "^24.0.0"
25
- },
26
- "dependencies": {
27
- "@ariakit/react": "0.4.21",
28
- "@headlessui/react": "2.2.9",
29
- "@radix-ui/react-accordion": "1.2.12",
30
- "@radix-ui/react-dialog": "1.1.15",
31
- "@radix-ui/react-dropdown-menu": "2.1.16",
32
- "@radix-ui/react-hover-card": "1.1.15",
33
- "@radix-ui/react-popover": "1.1.15",
34
- "@radix-ui/react-progress": "1.1.8",
35
- "@radix-ui/react-select": "2.2.6",
36
- "@radix-ui/react-slot": "1.2.4",
37
- "@radix-ui/react-switch": "1.2.6",
38
- "@radix-ui/react-tabs": "1.1.13",
39
- "@radix-ui/react-tooltip": "1.2.8",
40
- "@tanstack/react-table": "8.21.3",
41
- "@uidotdev/usehooks": "2.4.1",
42
- "class-variance-authority": "0.7.1",
43
- "clsx": "2.1.1",
44
- "cmdk": "1.1.1",
45
- "prismjs": "1.30.0",
46
- "react-day-picker": "9.13.0",
47
- "sonner": "2.0.7",
48
- "tailwind-merge": "3.4.0",
49
- "tiny-invariant": "1.3.3",
50
- "tw-animate-css": "1.4.0"
51
- },
52
- "devDependencies": {
53
- "@phosphor-icons/react": "2.1.10",
54
- "@testing-library/dom": "10.4.1",
55
- "@testing-library/jest-dom": "6.9.1",
56
- "@testing-library/react": "16.3.1",
57
- "@testing-library/user-event": "14.6.1",
58
- "@types/prismjs": "1.26.5",
59
- "@types/react": "18.3.27",
60
- "@types/react-dom": "18.3.7",
61
- "browserslist": "4.28.1",
62
- "date-fns": "4.1.0",
63
- "happy-dom": "20.3.1",
64
- "react": "18.3.1",
65
- "react-dom": "18.3.1",
66
- "react-router": "7.12.0",
67
- "tailwindcss": "4.1.18",
68
- "tsup": "8.5.1",
69
- "typescript": "5.9.3",
70
- "@cfg/tsconfig": "1.0.0"
71
- },
72
- "peerDependencies": {
73
- "@phosphor-icons/react": "^2.1.10",
74
- "date-fns": "^4.1.0",
75
- "react": "^18 || ^19",
76
- "react-dom": "^18 || ^19",
77
- "react-router": "^7",
78
- "tailwindcss": "^4.1.17"
79
- },
16
+ "type": "module",
17
+ "sideEffects": [
18
+ "*.css"
19
+ ],
80
20
  "exports": {
81
21
  "./mantle.css": {
82
22
  "@ngrok/mantle/source": "./src/mantle.css",
@@ -84,252 +24,312 @@
84
24
  },
85
25
  "./package.json": "./package.json",
86
26
  "./accordion": {
27
+ "types": "./dist/accordion.d.ts",
87
28
  "@ngrok/mantle/source": "./src/components/accordion/index.ts",
88
- "import": "./dist/accordion.js",
89
- "types": "./dist/accordion.d.ts"
29
+ "import": "./dist/accordion.js"
90
30
  },
91
31
  "./alert": {
32
+ "types": "./dist/alert.d.ts",
92
33
  "@ngrok/mantle/source": "./src/components/alert/index.ts",
93
- "import": "./dist/alert.js",
94
- "types": "./dist/alert.d.ts"
34
+ "import": "./dist/alert.js"
95
35
  },
96
36
  "./alert-dialog": {
37
+ "types": "./dist/alert-dialog.d.ts",
97
38
  "@ngrok/mantle/source": "./src/components/alert-dialog/index.ts",
98
- "import": "./dist/alert-dialog.js",
99
- "types": "./dist/alert-dialog.d.ts"
39
+ "import": "./dist/alert-dialog.js"
100
40
  },
101
41
  "./anchor": {
42
+ "types": "./dist/anchor.d.ts",
102
43
  "@ngrok/mantle/source": "./src/components/anchor/index.ts",
103
- "import": "./dist/anchor.js",
104
- "types": "./dist/anchor.d.ts"
44
+ "import": "./dist/anchor.js"
105
45
  },
106
46
  "./auto-scroll-to-hash": {
47
+ "types": "./dist/auto-scroll-to-hash.d.ts",
107
48
  "@ngrok/mantle/source": "./src/components/auto-scroll-to-hash/index.ts",
108
- "import": "./dist/auto-scroll-to-hash.js",
109
- "types": "./dist/auto-scroll-to-hash.d.ts"
49
+ "import": "./dist/auto-scroll-to-hash.js"
110
50
  },
111
51
  "./badge": {
52
+ "types": "./dist/badge.d.ts",
112
53
  "@ngrok/mantle/source": "./src/components/badge/index.ts",
113
- "import": "./dist/badge.js",
114
- "types": "./dist/badge.d.ts"
54
+ "import": "./dist/badge.js"
115
55
  },
116
56
  "./browser-only": {
57
+ "types": "./dist/browser-only.d.ts",
117
58
  "@ngrok/mantle/source": "./src/components/browser-only/index.ts",
118
- "import": "./dist/browser-only.js",
119
- "types": "./dist/browser-only.d.ts"
59
+ "import": "./dist/browser-only.js"
120
60
  },
121
61
  "./button": {
62
+ "types": "./dist/button.d.ts",
122
63
  "@ngrok/mantle/source": "./src/components/button/index.ts",
123
- "import": "./dist/button.js",
124
- "types": "./dist/button.d.ts"
64
+ "import": "./dist/button.js"
125
65
  },
126
66
  "./calendar": {
67
+ "types": "./dist/calendar.d.ts",
127
68
  "@ngrok/mantle/source": "./src/components/calendar/index.ts",
128
- "import": "./dist/calendar.js",
129
- "types": "./dist/calendar.d.ts"
69
+ "import": "./dist/calendar.js"
130
70
  },
131
71
  "./card": {
72
+ "types": "./dist/card.d.ts",
132
73
  "@ngrok/mantle/source": "./src/components/card/index.ts",
133
- "import": "./dist/card.js",
134
- "types": "./dist/card.d.ts"
74
+ "import": "./dist/card.js"
135
75
  },
136
76
  "./checkbox": {
77
+ "types": "./dist/checkbox.d.ts",
137
78
  "@ngrok/mantle/source": "./src/components/checkbox/index.ts",
138
- "import": "./dist/checkbox.js",
139
- "types": "./dist/checkbox.d.ts"
79
+ "import": "./dist/checkbox.js"
140
80
  },
141
81
  "./code": {
82
+ "types": "./dist/code.d.ts",
142
83
  "@ngrok/mantle/source": "./src/components/code/index.ts",
143
- "import": "./dist/code.js",
144
- "types": "./dist/code.d.ts"
84
+ "import": "./dist/code.js"
145
85
  },
146
86
  "./code-block": {
87
+ "types": "./dist/code-block.d.ts",
147
88
  "@ngrok/mantle/source": "./src/components/code-block/index.ts",
148
- "import": "./dist/code-block.js",
149
- "types": "./dist/code-block.d.ts"
89
+ "import": "./dist/code-block.js"
150
90
  },
151
91
  "./color": {
92
+ "types": "./dist/color.d.ts",
152
93
  "@ngrok/mantle/source": "./src/utils/color/index.ts",
153
- "import": "./dist/color.js",
154
- "types": "./dist/color.d.ts"
94
+ "import": "./dist/color.js"
155
95
  },
156
96
  "./combobox": {
97
+ "types": "./dist/combobox.d.ts",
157
98
  "@ngrok/mantle/source": "./src/components/combobox/index.ts",
158
- "import": "./dist/combobox.js",
159
- "types": "./dist/combobox.d.ts"
99
+ "import": "./dist/combobox.js"
160
100
  },
161
101
  "./command": {
102
+ "types": "./dist/command.d.ts",
162
103
  "@ngrok/mantle/source": "./src/components/command/index.ts",
163
- "import": "./dist/command.js",
164
- "types": "./dist/command.d.ts"
104
+ "import": "./dist/command.js"
165
105
  },
166
106
  "./compose-refs": {
107
+ "types": "./dist/compose-refs.d.ts",
167
108
  "@ngrok/mantle/source": "./src/utils/compose-refs/index.ts",
168
- "import": "./dist/compose-refs.js",
169
- "types": "./dist/compose-refs.d.ts"
109
+ "import": "./dist/compose-refs.js"
170
110
  },
171
111
  "./cx": {
112
+ "types": "./dist/cx.d.ts",
172
113
  "@ngrok/mantle/source": "./src/utils/cx/index.ts",
173
- "import": "./dist/cx.js",
174
- "types": "./dist/cx.d.ts"
114
+ "import": "./dist/cx.js"
175
115
  },
176
116
  "./data-table": {
117
+ "types": "./dist/data-table.d.ts",
177
118
  "@ngrok/mantle/source": "./src/components/data-table/index.ts",
178
- "import": "./dist/data-table.js",
179
- "types": "./dist/data-table.d.ts"
119
+ "import": "./dist/data-table.js"
180
120
  },
181
121
  "./date-picker": {},
182
122
  "./dialog": {
123
+ "types": "./dist/dialog.d.ts",
183
124
  "@ngrok/mantle/source": "./src/components/dialog/index.ts",
184
- "import": "./dist/dialog.js",
185
- "types": "./dist/dialog.d.ts"
125
+ "import": "./dist/dialog.js"
186
126
  },
187
127
  "./dropdown-menu": {
128
+ "types": "./dist/dropdown-menu.d.ts",
188
129
  "@ngrok/mantle/source": "./src/components/dropdown-menu/index.ts",
189
- "import": "./dist/dropdown-menu.js",
190
- "types": "./dist/dropdown-menu.d.ts"
130
+ "import": "./dist/dropdown-menu.js"
191
131
  },
192
132
  "./flag": {
133
+ "types": "./dist/flag.d.ts",
193
134
  "@ngrok/mantle/source": "./src/components/flag/index.ts",
194
- "import": "./dist/flag.js",
195
- "types": "./dist/flag.d.ts"
135
+ "import": "./dist/flag.js"
196
136
  },
197
137
  "./hooks": {
138
+ "types": "./dist/hooks.d.ts",
198
139
  "@ngrok/mantle/source": "./src/hooks/index.ts",
199
- "import": "./dist/hooks.js",
200
- "types": "./dist/hooks.d.ts"
140
+ "import": "./dist/hooks.js"
201
141
  },
202
142
  "./hover-card": {
143
+ "types": "./dist/hover-card.d.ts",
203
144
  "@ngrok/mantle/source": "./src/components/hover-card/index.ts",
204
- "import": "./dist/hover-card.js",
205
- "types": "./dist/hover-card.d.ts"
145
+ "import": "./dist/hover-card.js"
206
146
  },
207
147
  "./icon": {
148
+ "types": "./dist/icon.d.ts",
208
149
  "@ngrok/mantle/source": "./src/components/icon/index.ts",
209
- "import": "./dist/icon.js",
210
- "types": "./dist/icon.d.ts"
150
+ "import": "./dist/icon.js"
211
151
  },
212
152
  "./icons": {
153
+ "types": "./dist/icons.d.ts",
213
154
  "@ngrok/mantle/source": "./src/components/icons/index.ts",
214
- "import": "./dist/icons.js",
215
- "types": "./dist/icons.d.ts"
155
+ "import": "./dist/icons.js"
216
156
  },
217
157
  "./input": {
158
+ "types": "./dist/input.d.ts",
218
159
  "@ngrok/mantle/source": "./src/components/input/index.ts",
219
- "import": "./dist/input.js",
220
- "types": "./dist/input.d.ts"
160
+ "import": "./dist/input.js"
221
161
  },
222
162
  "./kbd": {
163
+ "types": "./dist/kbd.d.ts",
223
164
  "@ngrok/mantle/source": "./src/components/kbd/index.ts",
224
- "import": "./dist/kbd.js",
225
- "types": "./dist/kbd.d.ts"
165
+ "import": "./dist/kbd.js"
226
166
  },
227
167
  "./label": {
168
+ "types": "./dist/label.d.ts",
228
169
  "@ngrok/mantle/source": "./src/components/label/index.ts",
229
- "import": "./dist/label.js",
230
- "types": "./dist/label.d.ts"
170
+ "import": "./dist/label.js"
231
171
  },
232
172
  "./media-object": {
173
+ "types": "./dist/media-object.d.ts",
233
174
  "@ngrok/mantle/source": "./src/components/media-object/index.ts",
234
- "import": "./dist/media-object.js",
235
- "types": "./dist/media-object.d.ts"
175
+ "import": "./dist/media-object.js"
236
176
  },
237
177
  "./pagination": {
178
+ "types": "./dist/pagination.d.ts",
238
179
  "@ngrok/mantle/source": "./src/components/pagination/index.ts",
239
- "import": "./dist/pagination.js",
240
- "types": "./dist/pagination.d.ts"
180
+ "import": "./dist/pagination.js"
241
181
  },
242
182
  "./popover": {
183
+ "types": "./dist/popover.d.ts",
243
184
  "@ngrok/mantle/source": "./src/components/popover/index.ts",
244
- "import": "./dist/popover.js",
245
- "types": "./dist/popover.d.ts"
185
+ "import": "./dist/popover.js"
246
186
  },
247
187
  "./progress": {
188
+ "types": "./dist/progress.d.ts",
248
189
  "@ngrok/mantle/source": "./src/components/progress/index.ts",
249
- "import": "./dist/progress.js",
250
- "types": "./dist/progress.d.ts"
190
+ "import": "./dist/progress.js"
251
191
  },
252
192
  "./radio-group": {
193
+ "types": "./dist/radio-group.d.ts",
253
194
  "@ngrok/mantle/source": "./src/components/radio-group/index.ts",
254
- "import": "./dist/radio-group.js",
255
- "types": "./dist/radio-group.d.ts"
195
+ "import": "./dist/radio-group.js"
256
196
  },
257
197
  "./sandboxed-on-click": {
198
+ "types": "./dist/sandboxed-on-click.d.ts",
258
199
  "@ngrok/mantle/source": "./src/components/sandboxed-on-click/index.ts",
259
- "import": "./dist/sandboxed-on-click.js",
260
- "types": "./dist/sandboxed-on-click.d.ts"
200
+ "import": "./dist/sandboxed-on-click.js"
261
201
  },
262
202
  "./select": {
203
+ "types": "./dist/select.d.ts",
263
204
  "@ngrok/mantle/source": "./src/components/select/index.ts",
264
- "import": "./dist/select.js",
265
- "types": "./dist/select.d.ts"
205
+ "import": "./dist/select.js"
266
206
  },
267
207
  "./separator": {
208
+ "types": "./dist/separator.d.ts",
268
209
  "@ngrok/mantle/source": "./src/components/separator/index.ts",
269
- "import": "./dist/separator.js",
270
- "types": "./dist/separator.d.ts"
210
+ "import": "./dist/separator.js"
271
211
  },
272
212
  "./sheet": {
213
+ "types": "./dist/sheet.d.ts",
273
214
  "@ngrok/mantle/source": "./src/components/sheet/index.ts",
274
- "import": "./dist/sheet.js",
275
- "types": "./dist/sheet.d.ts"
215
+ "import": "./dist/sheet.js"
276
216
  },
277
217
  "./skeleton": {
218
+ "types": "./dist/skeleton.d.ts",
278
219
  "@ngrok/mantle/source": "./src/components/skeleton/index.ts",
279
- "import": "./dist/skeleton.js",
280
- "types": "./dist/skeleton.d.ts"
220
+ "import": "./dist/skeleton.js"
281
221
  },
282
222
  "./slot": {
223
+ "types": "./dist/slot.d.ts",
283
224
  "@ngrok/mantle/source": "./src/components/slot/index.ts",
284
- "import": "./dist/slot.js",
285
- "types": "./dist/slot.d.ts"
225
+ "import": "./dist/slot.js"
286
226
  },
287
227
  "./switch": {
228
+ "types": "./dist/switch.d.ts",
288
229
  "@ngrok/mantle/source": "./src/components/switch/index.ts",
289
- "import": "./dist/switch.js",
290
- "types": "./dist/switch.d.ts"
230
+ "import": "./dist/switch.js"
291
231
  },
292
232
  "./table": {
233
+ "types": "./dist/table.d.ts",
293
234
  "@ngrok/mantle/source": "./src/components/table/index.ts",
294
- "import": "./dist/table.js",
295
- "types": "./dist/table.d.ts"
235
+ "import": "./dist/table.js"
296
236
  },
297
237
  "./tabs": {
238
+ "types": "./dist/tabs.d.ts",
298
239
  "@ngrok/mantle/source": "./src/components/tabs/index.ts",
299
- "import": "./dist/tabs.js",
300
- "types": "./dist/tabs.d.ts"
240
+ "import": "./dist/tabs.js"
301
241
  },
302
242
  "./text-area": {
243
+ "types": "./dist/text-area.d.ts",
303
244
  "@ngrok/mantle/source": "./src/components/text-area/index.ts",
304
- "import": "./dist/text-area.js",
305
- "types": "./dist/text-area.d.ts"
245
+ "import": "./dist/text-area.js"
306
246
  },
307
247
  "./theme": {
248
+ "types": "./dist/theme.d.ts",
308
249
  "@ngrok/mantle/source": "./src/components/theme/index.ts",
309
- "import": "./dist/theme.js",
310
- "types": "./dist/theme.d.ts"
250
+ "import": "./dist/theme.js"
311
251
  },
312
252
  "./toast": {
253
+ "types": "./dist/toast.d.ts",
313
254
  "@ngrok/mantle/source": "./src/components/toast/index.ts",
314
- "import": "./dist/toast.js",
315
- "types": "./dist/toast.d.ts"
255
+ "import": "./dist/toast.js"
316
256
  },
317
257
  "./tooltip": {
258
+ "types": "./dist/tooltip.d.ts",
318
259
  "@ngrok/mantle/source": "./src/components/tooltip/index.ts",
319
- "import": "./dist/tooltip.js",
320
- "types": "./dist/tooltip.d.ts"
260
+ "import": "./dist/tooltip.js"
321
261
  },
322
262
  "./types": {
263
+ "types": "./dist/types.d.ts",
323
264
  "@ngrok/mantle/source": "./src/types/index.ts",
324
- "import": "./dist/types.js",
325
- "types": "./dist/types.d.ts"
265
+ "import": "./dist/types.js"
326
266
  },
327
267
  "./utils/sorting": {
268
+ "types": "./dist/sorting.d.ts",
328
269
  "@ngrok/mantle/source": "./src/utils/sorting/index.ts",
329
- "import": "./dist/sorting.js",
330
- "types": "./dist/sorting.d.ts"
270
+ "import": "./dist/sorting.js"
331
271
  }
332
272
  },
273
+ "dependencies": {
274
+ "@ariakit/react": "0.4.21",
275
+ "@headlessui/react": "2.2.9",
276
+ "@radix-ui/react-accordion": "1.2.12",
277
+ "@radix-ui/react-dialog": "1.1.15",
278
+ "@radix-ui/react-dropdown-menu": "2.1.16",
279
+ "@radix-ui/react-hover-card": "1.1.15",
280
+ "@radix-ui/react-popover": "1.1.15",
281
+ "@radix-ui/react-progress": "1.1.8",
282
+ "@radix-ui/react-select": "2.2.6",
283
+ "@radix-ui/react-slot": "1.2.4",
284
+ "@radix-ui/react-switch": "1.2.6",
285
+ "@radix-ui/react-tabs": "1.1.13",
286
+ "@radix-ui/react-tooltip": "1.2.8",
287
+ "@tanstack/react-table": "8.21.3",
288
+ "@uidotdev/usehooks": "2.4.1",
289
+ "class-variance-authority": "0.7.1",
290
+ "clsx": "2.1.1",
291
+ "cmdk": "1.1.1",
292
+ "prismjs": "1.30.0",
293
+ "react-day-picker": "9.13.0",
294
+ "sonner": "2.0.7",
295
+ "tailwind-merge": "3.4.0",
296
+ "tiny-invariant": "1.3.3",
297
+ "tw-animate-css": "1.4.0"
298
+ },
299
+ "devDependencies": {
300
+ "@phosphor-icons/react": "2.1.10",
301
+ "@testing-library/dom": "10.4.1",
302
+ "@testing-library/jest-dom": "6.9.1",
303
+ "@testing-library/react": "16.3.2",
304
+ "@testing-library/user-event": "14.6.1",
305
+ "@types/prismjs": "1.26.5",
306
+ "@types/react": "18.3.27",
307
+ "@types/react-dom": "18.3.7",
308
+ "browserslist": "4.28.1",
309
+ "date-fns": "4.1.0",
310
+ "happy-dom": "20.3.9",
311
+ "react": "18.3.1",
312
+ "react-dom": "18.3.1",
313
+ "react-router": "7.13.0",
314
+ "tailwindcss": "4.1.18",
315
+ "tsup": "8.5.1",
316
+ "typescript": "5.9.3",
317
+ "@cfg/tsconfig": "1.0.0"
318
+ },
319
+ "peerDependencies": {
320
+ "@phosphor-icons/react": "^2.1.10",
321
+ "date-fns": "^4.1.0",
322
+ "react": "^18 || ^19",
323
+ "react-dom": "^18 || ^19",
324
+ "react-router": "^7",
325
+ "tailwindcss": "^4.1.17"
326
+ },
327
+ "browserslist": [
328
+ "last 2 years, not dead, > 0.2%"
329
+ ],
330
+ "engines": {
331
+ "node": "^24.0.0"
332
+ },
333
333
  "scripts": {
334
334
  "build": "NODE_OPTIONS='--max-old-space-size=16384' tsup",
335
335
  "clean": "rm -rf dist",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/dialog/dialog.tsx"],"sourcesContent":["import { XIcon } from \"@phosphor-icons/react/X\";\nimport type {\n\tComponentProps,\n\tComponentPropsWithoutRef,\n\tComponentRef,\n} from \"react\";\nimport { forwardRef } from \"react\";\nimport { cx } from \"../../utils/cx/cx.js\";\nimport { IconButton, type IconButtonProps } from \"../button/icon-button.js\";\nimport { preventCloseOnPromptInteraction } from \"../toast/toast.js\";\nimport * as DialogPrimitive from \"./primitive.js\";\n\n/**\n * A window overlaid on either the primary window or another dialog window.\n * The root stateful component for the Dialog.\n *\n * @see https://mantle.ngrok.com/components/dialog#api-dialog\n *\n * @example\n * ```tsx\n * <Dialog.Root>\n * <Dialog.Trigger asChild>\n * <Button type=\"button\" appearance=\"outlined\">\n * Open Dialog\n * </Button>\n * </Dialog.Trigger>\n * <Dialog.Content>\n * <Dialog.Header>\n * <Dialog.Title>Dialog Title</Dialog.Title>\n * <Dialog.CloseIconButton />\n * </Dialog.Header>\n * <Dialog.Body>\n * <p>This is the dialog content.</p>\n * </Dialog.Body>\n * <Dialog.Footer>\n * <Button type=\"button\" appearance=\"outlined\">\n * Cancel\n * </Button>\n * <Button type=\"button\" appearance=\"filled\">\n * Save\n * </Button>\n * </Dialog.Footer>\n * </Dialog.Content>\n * </Dialog.Root>\n * ```\n */\nconst Root = DialogPrimitive.Root;\nRoot.displayName = \"Dialog\";\n\n/**\n * A button that opens the dialog.\n *\n * @see https://mantle.ngrok.com/components/dialog#api-dialog-trigger\n *\n * @example\n * ```tsx\n * <Dialog.Root>\n * <Dialog.Trigger asChild>\n * <Button type=\"button\" appearance=\"outlined\">\n * Open Dialog\n * </Button>\n * </Dialog.Trigger>\n * <Dialog.Content>\n * <Dialog.Header>\n * <Dialog.Title>Dialog Title</Dialog.Title>\n * </Dialog.Header>\n * <Dialog.Body>\n * <p>This is the dialog content.</p>\n * </Dialog.Body>\n * </Dialog.Content>\n * </Dialog.Root>\n * ```\n */\nconst Trigger = DialogPrimitive.Trigger;\nTrigger.displayName = \"DialogTrigger\";\n\nconst Portal = DialogPrimitive.Portal;\nPortal.displayName = \"DialogPortal\";\n\nconst Close = DialogPrimitive.Close;\nClose.displayName = \"DialogClose\";\n\nconst Overlay = forwardRef<\n\tComponentRef<\"div\">,\n\tComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n\t<DialogPrimitive.Overlay\n\t\tref={ref}\n\t\tclassName={cx(\n\t\t\t\"bg-overlay data-state-closed:animate-out data-state-closed:fade-out-0 data-state-open:animate-in data-state-open:fade-in-0 fixed inset-0 z-50 backdrop-blur-xs\",\n\t\t\tclassName,\n\t\t)}\n\t\t{...props}\n\t/>\n));\nOverlay.displayName = \"DialogOverlay\";\n\ntype ContentProps = ComponentPropsWithoutRef<typeof DialogPrimitive.Content> & {\n\t/**\n\t * The preferred width of the `Dialog.Content` as a tailwind `max-w-` class.\n\t *\n\t * By default, a `Dialog`'s content width is responsive with a default\n\t * preferred width: the maximum width of the `Dialog.Content`\n\t *\n\t * @default `max-w-lg`\n\t */\n\tpreferredWidth?: `max-w-${string}`;\n};\n\n/**\n * The container for the dialog content.\n * Renders on top of the overlay and is centered in the viewport.\n *\n * @see https://mantle.ngrok.com/components/dialog#api-dialog-content\n *\n * @example\n * ```tsx\n * <Dialog.Root>\n * <Dialog.Trigger asChild>\n * <Button type=\"button\" appearance=\"outlined\">\n * Open Dialog\n * </Button>\n * </Dialog.Trigger>\n * <Dialog.Content>\n * <Dialog.Header>\n * <Dialog.Title>Dialog Title</Dialog.Title>\n * <Dialog.CloseIconButton />\n * </Dialog.Header>\n * <Dialog.Body>\n * <p>This is the dialog content.</p>\n * </Dialog.Body>\n * <Dialog.Footer>\n * <Button type=\"button\" appearance=\"outlined\">\n * Cancel\n * </Button>\n * <Button type=\"button\" appearance=\"filled\">\n * Save\n * </Button>\n * </Dialog.Footer>\n * </Dialog.Content>\n * </Dialog.Root>\n * ```\n */\nconst Content = forwardRef<ComponentRef<\"div\">, ContentProps>(\n\t(\n\t\t{\n\t\t\tchildren,\n\t\t\tclassName,\n\t\t\tonInteractOutside,\n\t\t\tonPointerDownOutside,\n\t\t\tpreferredWidth = \"max-w-lg\",\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => (\n\t\t<Portal>\n\t\t\t<Overlay />\n\t\t\t<div className=\"fixed inset-4 z-50 flex items-center justify-center\">\n\t\t\t\t<DialogPrimitive.Content\n\t\t\t\t\tclassName={cx(\n\t\t\t\t\t\t\"flex max-h-full w-full flex-1 flex-col\",\n\t\t\t\t\t\t\"outline-hidden focus-within:outline-hidden\",\n\t\t\t\t\t\t\"border-dialog bg-dialog rounded-xl border shadow-lg transition-transform duration-200\",\n\t\t\t\t\t\t\"data-state-closed:animate-out data-state-closed:fade-out-0 data-state-closed:zoom-out-95 data-state-open:animate-in data-state-open:fade-in-0 data-state-open:zoom-in-95\",\n\t\t\t\t\t\tpreferredWidth,\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\tonInteractOutside={(event) => {\n\t\t\t\t\t\tpreventCloseOnPromptInteraction(event);\n\t\t\t\t\t\tonInteractOutside?.(event);\n\t\t\t\t\t}}\n\t\t\t\t\tonPointerDownOutside={(event) => {\n\t\t\t\t\t\tpreventCloseOnPromptInteraction(event);\n\t\t\t\t\t\tonPointerDownOutside?.(event);\n\t\t\t\t\t}}\n\t\t\t\t\tref={ref}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</DialogPrimitive.Content>\n\t\t\t</div>\n\t\t</Portal>\n\t),\n);\nContent.displayName = \"DialogContent\";\n\n/**\n * Contains the header content of the dialog, including the title and close button.\n *\n * @see https://mantle.ngrok.com/components/dialog#api-dialog-header\n *\n * @example\n * ```tsx\n * <Dialog.Root>\n * <Dialog.Trigger asChild>\n * <Button type=\"button\" appearance=\"outlined\">\n * Open Dialog\n * </Button>\n * </Dialog.Trigger>\n * <Dialog.Content>\n * <Dialog.Header>\n * <Dialog.Title>Dialog Title</Dialog.Title>\n * <Dialog.CloseIconButton />\n * </Dialog.Header>\n * <Dialog.Body>\n * <p>This is the dialog content.</p>\n * </Dialog.Body>\n * </Dialog.Content>\n * </Dialog.Root>\n * ```\n */\nconst Header = ({ className, children, ...props }: ComponentProps<\"div\">) => (\n\t<div\n\t\tclassName={cx(\n\t\t\t\"border-dialog-muted text-strong relative flex shrink-0 items-center justify-between gap-2 border-b px-6 py-4\",\n\t\t\t\"has-[.icon-button]:pr-4\", // when there are actions in the header, shorten the padding\n\t\t\tclassName,\n\t\t)}\n\t\t{...props}\n\t>\n\t\t{children}\n\t</div>\n);\nHeader.displayName = \"DialogHeader\";\n\ntype CloseIconButtonProps = Partial<Omit<IconButtonProps, \"icon\">>;\n\n/**\n * An icon button that closes the dialog when clicked.\n *\n * @see https://mantle.ngrok.com/components/dialog#api-dialog-close-icon-button\n *\n * @example\n * ```tsx\n * <Dialog.Root>\n * <Dialog.Trigger asChild>\n * <Button type=\"button\" appearance=\"outlined\">\n * Open Dialog\n * </Button>\n * </Dialog.Trigger>\n * <Dialog.Content>\n * <Dialog.Header>\n * <Dialog.Title>Dialog Title</Dialog.Title>\n * <Dialog.CloseIconButton />\n * </Dialog.Header>\n * <Dialog.Body>\n * <p>This is the dialog content.</p>\n * </Dialog.Body>\n * </Dialog.Content>\n * </Dialog.Root>\n * ```\n */\nconst CloseIconButton = ({\n\tsize = \"md\",\n\ttype = \"button\",\n\tlabel = \"Close Dialog\",\n\tappearance = \"ghost\",\n\t...props\n}: CloseIconButtonProps) => (\n\t<DialogPrimitive.Close asChild>\n\t\t<IconButton\n\t\t\tappearance={appearance}\n\t\t\ticon={<XIcon />}\n\t\t\tlabel={label}\n\t\t\tsize={size}\n\t\t\ttype={type}\n\t\t\t{...props}\n\t\t/>\n\t</DialogPrimitive.Close>\n);\nCloseIconButton.displayName = \"DialogCloseIconButton\";\n\n/**\n * Contains the main content of the dialog.\n *\n * @see https://mantle.ngrok.com/components/dialog#api-dialog-body\n *\n * @example\n * ```tsx\n * <Dialog.Root>\n * <Dialog.Trigger asChild>\n * <Button type=\"button\" appearance=\"outlined\">\n * Open Dialog\n * </Button>\n * </Dialog.Trigger>\n * <Dialog.Content>\n * <Dialog.Header>\n * <Dialog.Title>Dialog Title</Dialog.Title>\n * </Dialog.Header>\n * <Dialog.Body>\n * <p>This is the dialog content.</p>\n * </Dialog.Body>\n * </Dialog.Content>\n * </Dialog.Root>\n * ```\n */\nconst Body = ({ className, ...props }: ComponentProps<\"div\">) => (\n\t<div\n\t\tclassName={cx(\"scrollbar text-body flex-1 overflow-y-auto p-6\", className)}\n\t\t{...props}\n\t/>\n);\nBody.displayName = \"DialogBody\";\n\n/**\n * Contains the footer content of the dialog, including action buttons.\n *\n * @see https://mantle.ngrok.com/components/dialog#api-dialog-footer\n *\n * @example\n * ```tsx\n * <Dialog.Root>\n * <Dialog.Trigger asChild>\n * <Button type=\"button\" appearance=\"outlined\">\n * Open Dialog\n * </Button>\n * </Dialog.Trigger>\n * <Dialog.Content>\n * <Dialog.Header>\n * <Dialog.Title>Dialog Title</Dialog.Title>\n * </Dialog.Header>\n * <Dialog.Body>\n * <p>This is the dialog content.</p>\n * </Dialog.Body>\n * <Dialog.Footer>\n * <Button type=\"button\" appearance=\"outlined\">\n * Cancel\n * </Button>\n * <Button type=\"button\" appearance=\"filled\">\n * Save\n * </Button>\n * </Dialog.Footer>\n * </Dialog.Content>\n * </Dialog.Root>\n * ```\n */\nconst Footer = ({ className, ...props }: ComponentProps<\"div\">) => (\n\t<div\n\t\tclassName={cx(\n\t\t\t\"border-dialog-muted flex shrink-0 flex-row-reverse gap-2 border-t px-6 py-4\",\n\t\t\tclassName,\n\t\t)}\n\t\t{...props}\n\t/>\n);\nFooter.displayName = \"DialogFooter\";\n\n/**\n * An accessible name to be announced when the dialog is opened.\n *\n * @see https://mantle.ngrok.com/components/dialog#api-dialog-title\n *\n * @example\n * ```tsx\n * <Dialog.Root>\n * <Dialog.Trigger asChild>\n * <Button type=\"button\" appearance=\"outlined\">\n * Open Dialog\n * </Button>\n * </Dialog.Trigger>\n * <Dialog.Content>\n * <Dialog.Header>\n * <Dialog.Title>Dialog Title</Dialog.Title>\n * <Dialog.CloseIconButton />\n * </Dialog.Header>\n * <Dialog.Body>\n * <p>This is the dialog content.</p>\n * </Dialog.Body>\n * </Dialog.Content>\n * </Dialog.Root>\n * ```\n */\nconst Title = forwardRef<\n\tComponentRef<typeof DialogPrimitive.Title>,\n\tComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n\t<DialogPrimitive.Title\n\t\tref={ref}\n\t\tclassName={cx(\"text-strong truncate text-lg font-medium\", className)}\n\t\t{...props}\n\t/>\n));\nTitle.displayName = \"DialogTitle\";\n\n/**\n * An accessible description to be announced when the dialog is opened.\n * Renders as a `div` by default, but can be changed to any other element using\n * the `asChild` prop.\n *\n * @see https://mantle.ngrok.com/components/dialog#api-dialog-description\n *\n * @example\n * ```tsx\n * <Dialog.Root>\n * <Dialog.Trigger asChild>\n * <Button type=\"button\" appearance=\"outlined\">\n * Open Dialog\n * </Button>\n * </Dialog.Trigger>\n * <Dialog.Content>\n * <Dialog.Header>\n * <Dialog.Title>Dialog Title</Dialog.Title>\n * <Dialog.Description>\n * This is an optional description.\n * </Dialog.Description>\n * </Dialog.Header>\n * <Dialog.Body>\n * <p>This is the dialog content.</p>\n * </Dialog.Body>\n * </Dialog.Content>\n * </Dialog.Root>\n * ```\n */\nconst Description = forwardRef<\n\tComponentRef<typeof DialogPrimitive.Description>,\n\tComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n\t<DialogPrimitive.Description\n\t\tref={ref}\n\t\tclassName={cx(\"text-muted\", className)}\n\t\t{...props}\n\t/>\n));\nDescription.displayName = \"DialogDescription\";\n\n/**\n * A window overlaid on either the primary window or another dialog window.\n *\n * @see https://mantle.ngrok.com/components/dialog\n *\n * @example\n * ```tsx\n * <Dialog.Root>\n * <Dialog.Trigger asChild>\n * <Button type=\"button\" appearance=\"outlined\">\n * Open Dialog\n * </Button>\n * </Dialog.Trigger>\n * <Dialog.Content>\n * <Dialog.Header>\n * <Dialog.Title>Dialog Title</Dialog.Title>\n * <Dialog.CloseIconButton />\n * </Dialog.Header>\n * <Dialog.Body>\n * <p>This is the dialog content.</p>\n * </Dialog.Body>\n * <Dialog.Footer>\n * <Button type=\"button\" appearance=\"outlined\">\n * Cancel\n * </Button>\n * <Button type=\"button\" appearance=\"filled\">\n * Save\n * </Button>\n * </Dialog.Footer>\n * </Dialog.Content>\n * </Dialog.Root>\n * ```\n */\nconst Dialog = {\n\t/**\n\t * A window overlaid on either the primary window or another dialog window.\n\t * The root stateful component for the Dialog.\n\t *\n\t * @see https://mantle.ngrok.com/components/dialog#api-dialog\n\t *\n\t * @example\n\t * ```tsx\n\t * <Dialog.Root>\n\t * <Dialog.Trigger asChild>\n\t * <Button type=\"button\" appearance=\"outlined\">\n\t * Open Dialog\n\t * </Button>\n\t * </Dialog.Trigger>\n\t * <Dialog.Content>\n\t * <Dialog.Header>\n\t * <Dialog.Title>Dialog Title</Dialog.Title>\n\t * <Dialog.CloseIconButton />\n\t * </Dialog.Header>\n\t * <Dialog.Body>\n\t * <p>This is the dialog content.</p>\n\t * </Dialog.Body>\n\t * <Dialog.Footer>\n\t * <Button type=\"button\" appearance=\"outlined\">\n\t * Cancel\n\t * </Button>\n\t * <Button type=\"button\" appearance=\"filled\">\n\t * Save\n\t * </Button>\n\t * </Dialog.Footer>\n\t * </Dialog.Content>\n\t * </Dialog.Root>\n\t * ```\n\t */\n\tRoot,\n\t/**\n\t * Contains the main content of the dialog.\n\t *\n\t * @see https://mantle.ngrok.com/components/dialog#api-dialog-body\n\t *\n\t * @example\n\t * ```tsx\n\t * <Dialog.Root>\n\t * <Dialog.Trigger asChild>\n\t * <Button type=\"button\" appearance=\"outlined\">\n\t * Open Dialog\n\t * </Button>\n\t * </Dialog.Trigger>\n\t * <Dialog.Content>\n\t * <Dialog.Header>\n\t * <Dialog.Title>Dialog Title</Dialog.Title>\n\t * </Dialog.Header>\n\t * <Dialog.Body>\n\t * <p>This is the dialog content.</p>\n\t * </Dialog.Body>\n\t * </Dialog.Content>\n\t * </Dialog.Root>\n\t * ```\n\t */\n\tBody,\n\t/**\n\t * A button that closes the dialog when clicked.\n\t *\n\t * @see https://mantle.ngrok.com/components/dialog#api-dialog-close\n\t *\n\t * @example\n\t * ```tsx\n\t * <Dialog.Root>\n\t * <Dialog.Trigger asChild>\n\t * <Button type=\"button\">Open Dialog</Button>\n\t * </Dialog.Trigger>\n\t * <Dialog.Content>\n\t * <Dialog.Header>\n\t * <Dialog.Title>Confirm Action</Dialog.Title>\n\t * </Dialog.Header>\n\t * <Dialog.Body>\n\t * <Text>Are you sure you want to proceed?</Text>\n\t * </Dialog.Body>\n\t * <Dialog.Footer>\n\t * <Dialog.Close asChild>\n\t * <Button type=\"button\" appearance=\"outlined\">Cancel</Button>\n\t * </Dialog.Close>\n\t * <Button type=\"submit\">Confirm</Button>\n\t * </Dialog.Footer>\n\t * </Dialog.Content>\n\t * </Dialog.Root>\n\t * ```\n\t */\n\tClose,\n\t/**\n\t * An icon button that closes the dialog when clicked.\n\t *\n\t * @see https://mantle.ngrok.com/components/dialog#api-dialog-close-icon-button\n\t *\n\t * @example\n\t * ```tsx\n\t * <Dialog.Root>\n\t * <Dialog.Trigger asChild>\n\t * <Button type=\"button\" appearance=\"outlined\">\n\t * Open Dialog\n\t * </Button>\n\t * </Dialog.Trigger>\n\t * <Dialog.Content>\n\t * <Dialog.Header>\n\t * <Dialog.Title>Dialog Title</Dialog.Title>\n\t * <Dialog.CloseIconButton />\n\t * </Dialog.Header>\n\t * <Dialog.Body>\n\t * <p>This is the dialog content.</p>\n\t * </Dialog.Body>\n\t * </Dialog.Content>\n\t * </Dialog.Root>\n\t * ```\n\t */\n\tCloseIconButton,\n\t/**\n\t * The container for the dialog content.\n\t * Renders on top of the overlay and is centered in the viewport.\n\t *\n\t * @see https://mantle.ngrok.com/components/dialog#api-dialog-content\n\t *\n\t * @example\n\t * ```tsx\n\t * <Dialog.Root>\n\t * <Dialog.Trigger asChild>\n\t * <Button type=\"button\" appearance=\"outlined\">\n\t * Open Dialog\n\t * </Button>\n\t * </Dialog.Trigger>\n\t * <Dialog.Content>\n\t * <Dialog.Header>\n\t * <Dialog.Title>Dialog Title</Dialog.Title>\n\t * <Dialog.CloseIconButton />\n\t * </Dialog.Header>\n\t * <Dialog.Body>\n\t * <p>This is the dialog content.</p>\n\t * </Dialog.Body>\n\t * <Dialog.Footer>\n\t * <Button type=\"button\" appearance=\"outlined\">\n\t * Cancel\n\t * </Button>\n\t * <Button type=\"button\" appearance=\"filled\">\n\t * Save\n\t * </Button>\n\t * </Dialog.Footer>\n\t * </Dialog.Content>\n\t * </Dialog.Root>\n\t * ```\n\t */\n\tContent,\n\t/**\n\t * An accessible description to be announced when the dialog is opened.\n\t *\n\t * @see https://mantle.ngrok.com/components/dialog#api-dialog-description\n\t *\n\t * @example\n\t * ```tsx\n\t * <Dialog.Root>\n\t * <Dialog.Trigger asChild>\n\t * <Button type=\"button\" appearance=\"outlined\">\n\t * Open Dialog\n\t * </Button>\n\t * </Dialog.Trigger>\n\t * <Dialog.Content>\n\t * <Dialog.Header>\n\t * <Dialog.Title>Dialog Title</Dialog.Title>\n\t * <Dialog.Description>\n\t * This is an optional description.\n\t * </Dialog.Description>\n\t * </Dialog.Header>\n\t * <Dialog.Body>\n\t * <p>This is the dialog content.</p>\n\t * </Dialog.Body>\n\t * </Dialog.Content>\n\t * </Dialog.Root>\n\t * ```\n\t */\n\tDescription,\n\t/**\n\t * Contains the footer content of the dialog, including action buttons.\n\t *\n\t * @see https://mantle.ngrok.com/components/dialog#api-dialog-footer\n\t *\n\t * @example\n\t * ```tsx\n\t * <Dialog.Root>\n\t * <Dialog.Trigger asChild>\n\t * <Button type=\"button\" appearance=\"outlined\">\n\t * Open Dialog\n\t * </Button>\n\t * </Dialog.Trigger>\n\t * <Dialog.Content>\n\t * <Dialog.Header>\n\t * <Dialog.Title>Dialog Title</Dialog.Title>\n\t * </Dialog.Header>\n\t * <Dialog.Body>\n\t * <p>This is the dialog content.</p>\n\t * </Dialog.Body>\n\t * <Dialog.Footer>\n\t * <Button type=\"button\" appearance=\"outlined\">\n\t * Cancel\n\t * </Button>\n\t * <Button type=\"button\" appearance=\"filled\">\n\t * Save\n\t * </Button>\n\t * </Dialog.Footer>\n\t * </Dialog.Content>\n\t * </Dialog.Root>\n\t * ```\n\t */\n\tFooter,\n\t/**\n\t * Contains the header content of the dialog, including the title and close button.\n\t *\n\t * @see https://mantle.ngrok.com/components/dialog#api-dialog-header\n\t *\n\t * @example\n\t * ```tsx\n\t * <Dialog.Root>\n\t * <Dialog.Trigger asChild>\n\t * <Button type=\"button\" appearance=\"outlined\">\n\t * Open Dialog\n\t * </Button>\n\t * </Dialog.Trigger>\n\t * <Dialog.Content>\n\t * <Dialog.Header>\n\t * <Dialog.Title>Dialog Title</Dialog.Title>\n\t * <Dialog.CloseIconButton />\n\t * </Dialog.Header>\n\t * <Dialog.Body>\n\t * <p>This is the dialog content.</p>\n\t * </Dialog.Body>\n\t * </Dialog.Content>\n\t * </Dialog.Root>\n\t * ```\n\t */\n\tHeader,\n\t/**\n\t * The overlay backdrop for the dialog.\n\t *\n\t * @see https://mantle.ngrok.com/components/dialog#api-dialog-overlay\n\t *\n\t * @example\n\t * ```tsx\n\t * <Dialog.Root>\n\t * <Dialog.Portal>\n\t * <Dialog.Overlay />\n\t * <Dialog.Content>\n\t * <Dialog.Header>\n\t * <Dialog.Title>Dialog Title</Dialog.Title>\n\t * </Dialog.Header>\n\t * <Dialog.Body>\n\t * <Text>Dialog content here.</Text>\n\t * </Dialog.Body>\n\t * </Dialog.Content>\n\t * </Dialog.Portal>\n\t * </Dialog.Root>\n\t * ```\n\t */\n\tOverlay,\n\t/**\n\t * The portal container for the dialog.\n\t *\n\t * @see https://mantle.ngrok.com/components/dialog#api-dialog-portal\n\t *\n\t * @example\n\t * ```tsx\n\t * <Dialog.Root>\n\t * <Dialog.Trigger asChild>\n\t * <Button type=\"button\">Open Dialog</Button>\n\t * </Dialog.Trigger>\n\t * <Dialog.Portal>\n\t * <Dialog.Overlay />\n\t * <Dialog.Content>\n\t * <Dialog.Header>\n\t * <Dialog.Title>Portal Dialog</Dialog.Title>\n\t * </Dialog.Header>\n\t * <Dialog.Body>\n\t * <Text>This dialog is rendered in a portal.</Text>\n\t * </Dialog.Body>\n\t * </Dialog.Content>\n\t * </Dialog.Portal>\n\t * </Dialog.Root>\n\t * ```\n\t */\n\tPortal,\n\t/**\n\t * An accessible name to be announced when the dialog is opened.\n\t *\n\t * @see https://mantle.ngrok.com/components/dialog#api-dialog-title\n\t *\n\t * @example\n\t * ```tsx\n\t * <Dialog.Root>\n\t * <Dialog.Trigger asChild>\n\t * <Button type=\"button\" appearance=\"outlined\">\n\t * Open Dialog\n\t * </Button>\n\t * </Dialog.Trigger>\n\t * <Dialog.Content>\n\t * <Dialog.Header>\n\t * <Dialog.Title>Dialog Title</Dialog.Title>\n\t * <Dialog.CloseIconButton />\n\t * </Dialog.Header>\n\t * <Dialog.Body>\n\t * <p>This is the dialog content.</p>\n\t * </Dialog.Body>\n\t * </Dialog.Content>\n\t * </Dialog.Root>\n\t * ```\n\t */\n\tTitle,\n\t/**\n\t * A button that opens the dialog.\n\t *\n\t * @see https://mantle.ngrok.com/components/dialog#api-dialog-trigger\n\t *\n\t * @example\n\t * ```tsx\n\t * <Dialog.Root>\n\t * <Dialog.Trigger asChild>\n\t * <Button type=\"button\" appearance=\"outlined\">\n\t * Open Dialog\n\t * </Button>\n\t * </Dialog.Trigger>\n\t * <Dialog.Content>\n\t * <Dialog.Header>\n\t * <Dialog.Title>Dialog Title</Dialog.Title>\n\t * </Dialog.Header>\n\t * <Dialog.Body>\n\t * <p>This is the dialog content.</p>\n\t * </Dialog.Body>\n\t * </Dialog.Content>\n\t * </Dialog.Root>\n\t * ```\n\t */\n\tTrigger,\n} as const;\n\nexport {\n\t//,\n\tDialog,\n};\n"],"mappings":"4MAAA,OAAS,SAAAA,MAAa,0BAMtB,OAAS,cAAAC,MAAkB,QAgF1B,cAAAC,EAqEC,QAAAC,MArED,oBAxCD,IAAMC,EAAuBA,EAC7BA,EAAK,YAAc,SA0BnB,IAAMC,EAA0BA,EAChCA,EAAQ,YAAc,gBAEtB,IAAMC,EAAyBA,EAC/BA,EAAO,YAAc,eAErB,IAAMC,EAAwBA,EAC9BA,EAAM,YAAc,cAEpB,IAAMC,EAAUC,EAGd,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAM,EAAGC,IAC3BV,EAAiBM,EAAhB,CACA,IAAKI,EACL,UAAWC,EACV,iKACAH,CACD,EACC,GAAGC,EACL,CACA,EACDH,EAAQ,YAAc,gBAgDtB,IAAMM,EAAUL,EACf,CACC,CACC,SAAAM,EACA,UAAAL,EACA,kBAAAM,EACA,qBAAAC,EACA,eAAAC,EAAiB,WACjB,GAAGP,CACJ,EACAC,IAEAT,EAACG,EAAA,CACA,UAAAJ,EAACM,EAAA,EAAQ,EACTN,EAAC,OAAI,UAAU,sDACd,SAAAA,EAAiBY,EAAhB,CACA,UAAWD,EACV,yCACA,6CACA,wFACA,2KACAK,EACAR,CACD,EACA,kBAAoBS,GAAU,CAC7BC,EAAgCD,CAAK,EACrCH,IAAoBG,CAAK,CAC1B,EACA,qBAAuBA,GAAU,CAChCC,EAAgCD,CAAK,EACrCF,IAAuBE,CAAK,CAC7B,EACA,IAAKP,EACJ,GAAGD,EAEH,SAAAI,EACF,EACD,GACD,CAEF,EACAD,EAAQ,YAAc,gBA2BtB,IAAMO,EAAS,CAAC,CAAE,UAAAX,EAAW,SAAAK,EAAU,GAAGJ,CAAM,IAC/CT,EAAC,OACA,UAAWW,EACV,+GACA,0BACAH,CACD,EACC,GAAGC,EAEH,SAAAI,EACF,EAEDM,EAAO,YAAc,eA6BrB,IAAMC,EAAkB,CAAC,CACxB,KAAAC,EAAO,KACP,KAAAC,EAAO,SACP,MAAAC,EAAQ,eACR,WAAAC,EAAa,QACb,GAAGf,CACJ,IACCT,EAAiBK,EAAhB,CAAsB,QAAO,GAC7B,SAAAL,EAACyB,EAAA,CACA,WAAYD,EACZ,KAAMxB,EAAC0B,EAAA,EAAM,EACb,MAAOH,EACP,KAAMF,EACN,KAAMC,EACL,GAAGb,EACL,EACD,EAEDW,EAAgB,YAAc,wBA0B9B,IAAMO,EAAO,CAAC,CAAE,UAAAnB,EAAW,GAAGC,CAAM,IACnCT,EAAC,OACA,UAAWW,EAAG,iDAAkDH,CAAS,EACxE,GAAGC,EACL,EAEDkB,EAAK,YAAc,aAkCnB,IAAMC,EAAS,CAAC,CAAE,UAAApB,EAAW,GAAGC,CAAM,IACrCT,EAAC,OACA,UAAWW,EACV,8EACAH,CACD,EACC,GAAGC,EACL,EAEDmB,EAAO,YAAc,eA2BrB,IAAMC,EAAQtB,EAGZ,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAM,EAAGC,IAC3BV,EAAiB6B,EAAhB,CACA,IAAKnB,EACL,UAAWC,EAAG,2CAA4CH,CAAS,EAClE,GAAGC,EACL,CACA,EACDoB,EAAM,YAAc,cA+BpB,IAAMC,EAAcvB,EAGlB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAM,EAAGC,IAC3BV,EAAiB8B,EAAhB,CACA,IAAKpB,EACL,UAAWC,EAAG,aAAcH,CAAS,EACpC,GAAGC,EACL,CACA,EACDqB,EAAY,YAAc,oBAmC1B,IAAMC,EAAS,CAmCd,KAAA7B,EAyBA,KAAAyB,EA6BA,MAAAtB,EA0BA,gBAAAe,EAmCA,QAAAR,EA4BA,YAAAkB,EAiCA,OAAAF,EA0BA,OAAAT,EAuBA,QAAAb,EA0BA,OAAAF,EA0BA,MAAAyB,EAyBA,QAAA1B,CACD","names":["XIcon","forwardRef","jsx","jsxs","Root","Trigger","Portal","Close","Overlay","forwardRef","className","props","ref","cx","Content","children","onInteractOutside","onPointerDownOutside","preferredWidth","event","preventCloseOnPromptInteraction","Header","CloseIconButton","size","type","label","appearance","IconButton","XIcon","Body","Footer","Title","Description","Dialog"]}
@@ -1,2 +0,0 @@
1
- import{a as o}from"./chunk-PFXFESEN.js";import{cva as s}from"class-variance-authority";import{forwardRef as a}from"react";import{jsx as f}from"react/jsx-runtime";var m=s("border-form inline-flex items-center rounded-md",{variants:{appearance:{panel:"bg-form gap-0.5 border p-[0.1875rem] [--icon-button-border-radius:0.125rem] [&>.separator]:mx-px",ghost:"gap-0.5",outlined:""}}}),t=a(({appearance:r,className:p,children:e,...n},u)=>f("fieldset",{className:o(m({appearance:r}),p),ref:u,...n,children:e}));t.displayName="ButtonGroup";export{t as a};
2
- //# sourceMappingURL=chunk-GC6NS32Q.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/button/button-group.tsx"],"sourcesContent":["import { cva } from \"class-variance-authority\";\nimport { type ComponentProps, type ComponentRef, forwardRef } from \"react\";\nimport type { VariantProps } from \"../../types/index.js\";\nimport { cx } from \"../../utils/cx/cx.js\";\n\nconst buttonGroupVariants = cva(\n\t\"border-form inline-flex items-center rounded-md\",\n\t{\n\t\tvariants: {\n\t\t\t/**\n\t\t\t * Defines the visual style of the ButtonGroup.\n\t\t\t */\n\t\t\tappearance: {\n\t\t\t\tpanel:\n\t\t\t\t\t\"bg-form gap-0.5 border p-[0.1875rem] [--icon-button-border-radius:0.125rem] [&>.separator]:mx-px\",\n\t\t\t\tghost: \"gap-0.5\",\n\t\t\t\toutlined: \"\", // TODO(cody): implement me\n\t\t\t},\n\t\t},\n\t},\n);\n\ntype ButtonGroupVariants = VariantProps<typeof buttonGroupVariants>;\n\ntype ButtonGroupProps = ComponentProps<\"fieldset\"> & ButtonGroupVariants;\n\n/**\n * A contained group of related buttons.\n *\n * @see https://mantle.ngrok.com/components/button-group#api-button-group\n *\n * @example\n * ```tsx\n * <ButtonGroup appearance=\"panel\">\n * <IconButton icon={<Bold />} label=\"Bold\" />\n * <IconButton icon={<Italic />} label=\"Italic\" />\n * <IconButton icon={<Underline />} label=\"Underline\" />\n * </ButtonGroup>\n * ```\n */\nconst ButtonGroup = forwardRef<ComponentRef<\"fieldset\">, ButtonGroupProps>(\n\t({ appearance, className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<fieldset\n\t\t\t\tclassName={cx(buttonGroupVariants({ appearance }), className)}\n\t\t\t\tref={ref}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</fieldset>\n\t\t);\n\t},\n);\nButtonGroup.displayName = \"ButtonGroup\";\n\nexport {\n\t//,\n\tButtonGroup,\n};\n\nexport type {\n\t//,\n\tButtonGroupProps,\n};\n"],"mappings":"wCAAA,OAAS,OAAAA,MAAW,2BACpB,OAAiD,cAAAC,MAAkB,QA0ChE,cAAAC,MAAA,oBAtCH,IAAMC,EAAsBC,EAC3B,kDACA,CACC,SAAU,CAIT,WAAY,CACX,MACC,mGACD,MAAO,UACP,SAAU,EACX,CACD,CACD,CACD,EAoBMC,EAAcC,EACnB,CAAC,CAAE,WAAAC,EAAY,UAAAC,EAAW,SAAAC,EAAU,GAAGC,CAAM,EAAGC,IAE9CT,EAAC,YACA,UAAWU,EAAGT,EAAoB,CAAE,WAAAI,CAAW,CAAC,EAAGC,CAAS,EAC5D,IAAKG,EACJ,GAAGD,EAEH,SAAAD,EACF,CAGH,EACAJ,EAAY,YAAc","names":["cva","forwardRef","jsx","buttonGroupVariants","cva","ButtonGroup","forwardRef","appearance","className","children","props","ref","cx"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/sorting/direction.ts"],"sourcesContent":["/**\n * Sorting modes\n * - alphanumeric: Sort by alphanumeric order (A-Z, 0-9, Z-A, 9-0)\n * - time: Sort by time (newest-to-oldest, oldest-to-newest)\n */\nconst sortingModes = [\"alphanumeric\", \"time\"] as const;\n\n/**\n * Sorting modes\n * - alphanumeric: Sort by alphanumeric order (A-Z, 0-9, Z-A, 9-0)\n * - time: Sort by time (newest-to-oldest, oldest-to-newest)\n */\ntype SortingMode = (typeof sortingModes)[number];\n\n/**\n * Type guard for sorting modes\n * - alphanumeric: Sort by alphanumeric order (A-Z, 0-9, Z-A, 9-0)\n * - time: Sort by time (newest-to-oldest, oldest-to-newest)\n *\n * @example isSortingMode(\"alphanumeric\") // true\n * @example isSortingMode(\"time\") // true\n * @example isSortingMode(\"foo\") // false\n */\nconst isSortingMode = (value: unknown): value is SortingMode =>\n\ttypeof value === \"string\" && sortingModes.includes(value as SortingMode);\n\n/**\n * Runtime type-to-value helper for sorting modes\n * - alphanumeric: Sort by alphanumeric order (A-Z, 0-9, Z-A, 9-0)\n * - time: Sort by time (newest-to-oldest, oldest-to-newest)\n *\n * @example $sortingMode(\"alphanumeric\") // \"alphanumeric\"\n * @example $sortingMode(\"time\") // \"time\"\n */\nconst $sortingMode = <T extends SortingMode = SortingMode>(value: T) => value;\n\n/**\n * Sorting directions\n * - asc: Ascending order (alphanumeric: A-Z, 0-9; time: oldest-to-newest)\n * - desc: Descending order (alphanumeric: Z-A, 9-0; time: newest-to-oldest)\n */\nconst sortingDirections = [\"asc\", \"desc\"] as const;\n\n/**\n * Sorting directions\n * - asc: Ascending order (alphanumeric: A-Z, 0-9; time: oldest-to-newest)\n * - desc: Descending order (alphanumeric: Z-A, 9-0; time: newest-to-oldest)\n */\ntype SortingDirection = (typeof sortingDirections)[number];\n\n/**\n * Type guard for sorting directions\n * - asc: Ascending order (alphanumeric: A-Z, 0-9; time: oldest-to-newest)\n * - desc: Descending order (alphanumeric: Z-A, 9-0; time: newest-to-oldest)\n *\n * @example isSortingDirection(\"asc\") // true\n * @example isSortingDirection(\"desc\") // true\n * @example isSortingDirection(\"foo\") // false\n */\nconst isSortingDirection = (value: unknown): value is SortingDirection =>\n\ttypeof value === \"string\" &&\n\tsortingDirections.includes(value as SortingDirection);\n\n/**\n * Runtime type-to-value helper for sorting directions\n * - asc: Ascending order (alphanumeric: A-Z, 0-9; time: oldest-to-newest)\n * - desc: Descending order (alphanumeric: Z-A, 9-0; time: newest-to-oldest)\n *\n * @example $sortingDirection(\"asc\") // \"asc\"\n * @example $sortingDirection(\"desc\") // \"desc\"\n */\nconst $sortingDirection = <T extends SortingDirection = SortingDirection>(\n\tvalue: T,\n) => value;\n\n/**\n * Alphanumeric sorting directions\n * - asc: Ascending order (A-Z, 0-9)\n * - desc: Descending order (Z-A, 9-0)\n */\nconst alphanumericSortingDirections = [...sortingDirections] as const;\n\n/**\n * Alphanumeric sorting directions\n * - asc: Ascending order (A-Z, 0-9)\n * - desc: Descending order (Z-A, 9-0)\n */\ntype AlphanumericSortingDirection =\n\t(typeof alphanumericSortingDirections)[number];\n\n/**\n * Type guard for alphanumeric sorting directions\n * - asc: Ascending order (A-Z, 0-9)\n * - desc: Descending order (Z-A, 9-0)\n *\n * @example isAlphanumericSortingDirection(\"asc\") // true\n * @example isAlphanumericSortingDirection(\"desc\") // true\n * @example isAlphanumericSortingDirection(\"foo\") // false\n */\nconst isAlphanumericSortingDirection = (\n\tvalue: unknown,\n): value is AlphanumericSortingDirection =>\n\ttypeof value === \"string\" &&\n\talphanumericSortingDirections.includes(value as AlphanumericSortingDirection);\n\n/**\n * Runtime type-to-value helper for alphanumeric sorting directions\n * - asc: Ascending order (A-Z, 0-9)\n * - desc: Descending order (Z-A, 9-0)\n *\n * @example $alphanumericSortingDirection(\"asc\") // \"asc\"\n * @example $alphanumericSortingDirection(\"desc\") // \"desc\"\n */\nconst $alphanumericSortingDirection = <\n\tT extends AlphanumericSortingDirection = AlphanumericSortingDirection,\n>(\n\tvalue: T,\n) => value;\n\n/**\n * Time sorting directions\n * - newest-to-oldest: Descending order (newest first, oldest last)\n * - oldest-to-newest: Ascending order (oldest first, newest last)\n */\nconst timeSortingDirections = [\"newest-to-oldest\", \"oldest-to-newest\"] as const;\n\n/**\n * Time sorting directions\n * - newest-to-oldest: Descending order (newest first, oldest last)\n * - oldest-to-newest: Ascending order (oldest first, newest last)\n */\ntype TimeSortingDirection = (typeof timeSortingDirections)[number];\n\n/**\n * Type guard for time sorting directions\n * - newest-to-oldest: Descending order (newest first, oldest last)\n * - oldest-to-newest: Ascending order (oldest first, newest last)\n *\n * @example isTimeSortingDirection(\"newest-to-oldest\") // true\n * @example isTimeSortingDirection(\"oldest-to-newest\") // true\n * @example isTimeSortingDirection(\"foo\") // false\n * @example isTimeSortingDirection(\"asc\") // false\n * @example isTimeSortingDirection(\"desc\") // false\n */\nconst isTimeSortingDirection = (\n\tvalue: unknown,\n): value is TimeSortingDirection =>\n\ttypeof value === \"string\" &&\n\ttimeSortingDirections.includes(value as TimeSortingDirection);\n\n/**\n * Converts a sorting direction to a time sorting direction\n * - asc -> oldest-to-newest\n * - desc -> newest-to-oldest\n */\nconst timeSortingByDirection = {\n\tasc: \"oldest-to-newest\",\n\tdesc: \"newest-to-oldest\",\n} as const satisfies Record<SortingDirection, TimeSortingDirection>;\n\n/**\n * Runtime type-to-value helper for time sorting directions.\n * If given a sorting direction, it will convert it to a time sorting direction.\n * - newest-to-oldest: Descending order (desc; newest first, oldest last)\n * - oldest-to-newest: Ascending order (asc; oldest first, newest last)\n *\n * @example $timeSortingDirection(\"asc\") // \"oldest-to-newest\"\n * @example $timeSortingDirection(\"desc\") // \"newest-to-oldest\"\n * @example $timeSortingDirection(\"oldest-to-newest\") // \"oldest-to-newest\"\n * @example $timeSortingDirection(\"newest-to-oldest\") // \"newest-to-oldest\"\n */\nfunction $timeSortingDirection<\n\tT extends TimeSortingDirection | SortingDirection,\n>(value: T) {\n\tif (isSortingDirection(value)) {\n\t\treturn timeSortingByDirection[value];\n\t}\n\tif (isTimeSortingDirection(value)) {\n\t\treturn value;\n\t}\n\tthrow new Error(`Invalid time sorting direction given: \"${value}\"`);\n}\n\nexport {\n\t//,\n\t$alphanumericSortingDirection,\n\t$sortingDirection,\n\t$sortingMode,\n\t$timeSortingDirection,\n\talphanumericSortingDirections,\n\tisAlphanumericSortingDirection,\n\tisSortingDirection,\n\tisSortingMode,\n\tisTimeSortingDirection,\n\tsortingDirections,\n\tsortingModes,\n\ttimeSortingByDirection,\n\ttimeSortingDirections,\n};\n\nexport type {\n\t//,\n\tAlphanumericSortingDirection,\n\tSortingDirection,\n\tSortingMode,\n\tTimeSortingDirection,\n};\n"],"mappings":"AAKA,IAAMA,EAAe,CAAC,eAAgB,MAAM,EAkBtCC,EAAiBC,GACtB,OAAOA,GAAU,UAAYF,EAAa,SAASE,CAAoB,EAUlEC,EAAqDD,GAAaA,EAOlEE,EAAoB,CAAC,MAAO,MAAM,EAkBlCC,EAAsBH,GAC3B,OAAOA,GAAU,UACjBE,EAAkB,SAASF,CAAyB,EAU/CI,EACLJ,GACIA,EAOCK,EAAgC,CAAC,GAAGH,CAAiB,EAmBrDI,EACLN,GAEA,OAAOA,GAAU,UACjBK,EAA8B,SAASL,CAAqC,EAUvEO,EAGLP,GACIA,EAOCQ,EAAwB,CAAC,mBAAoB,kBAAkB,EAoB/DC,EACLT,GAEA,OAAOA,GAAU,UACjBQ,EAAsB,SAASR,CAA6B,EAOvDU,EAAyB,CAC9B,IAAK,mBACL,KAAM,kBACP,EAaA,SAASC,EAEPX,EAAU,CACX,GAAIG,EAAmBH,CAAK,EAC3B,OAAOU,EAAuBV,CAAK,EAEpC,GAAIS,EAAuBT,CAAK,EAC/B,OAAOA,EAER,MAAM,IAAI,MAAM,0CAA0CA,CAAK,GAAG,CACnE","names":["sortingModes","isSortingMode","value","$sortingMode","sortingDirections","isSortingDirection","$sortingDirection","alphanumericSortingDirections","isAlphanumericSortingDirection","$alphanumericSortingDirection","timeSortingDirections","isTimeSortingDirection","timeSortingByDirection","$timeSortingDirection"]}