@naeil/ui 0.2.0 → 0.3.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 (106) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/DESIGN.md +186 -0
  3. package/LICENSE +21 -0
  4. package/README.md +77 -53
  5. package/THIRD_PARTY_NOTICES.md +49 -0
  6. package/dist/{chunk-SYI3IKIC.js → chunk-QKVN6Q6C.js} +102 -19
  7. package/dist/components/index.d.ts +2 -2
  8. package/dist/components/index.js +9 -9
  9. package/dist/components/ui/index.d.ts +26 -4
  10. package/dist/components/ui/index.js +288 -33
  11. package/dist/source/components/footer.d.ts +15 -0
  12. package/dist/source/components/footer.js +172 -0
  13. package/dist/source/components/index.d.ts +11 -0
  14. package/dist/source/components/index.js +26 -0
  15. package/dist/source/components/locale-switcher.d.ts +17 -0
  16. package/dist/source/components/locale-switcher.js +66 -0
  17. package/dist/source/components/logo.d.ts +9 -0
  18. package/dist/source/components/logo.js +52 -0
  19. package/dist/source/components/nav.d.ts +39 -0
  20. package/dist/source/components/nav.js +412 -0
  21. package/dist/source/components/theme-provider.d.ts +6 -0
  22. package/dist/source/components/theme-provider.js +45 -0
  23. package/dist/source/components/theme-toggle-icon.d.ts +5 -0
  24. package/dist/source/components/theme-toggle-icon.js +62 -0
  25. package/dist/source/components/theme-toggle.d.ts +5 -0
  26. package/dist/source/components/theme-toggle.js +34 -0
  27. package/dist/source/components/typography.d.ts +12 -0
  28. package/dist/source/components/typography.js +49 -0
  29. package/dist/source/components/ui/avatar.d.ts +14 -0
  30. package/dist/source/components/ui/avatar.js +137 -0
  31. package/dist/source/components/ui/badge.d.ts +13 -0
  32. package/dist/source/components/ui/badge.js +76 -0
  33. package/dist/source/components/ui/button.d.ts +14 -0
  34. package/dist/source/components/ui/button.js +88 -0
  35. package/dist/source/components/ui/card.d.ts +13 -0
  36. package/dist/source/components/ui/card.js +135 -0
  37. package/dist/source/components/ui/checkbox.d.ts +7 -0
  38. package/dist/source/components/ui/checkbox.js +58 -0
  39. package/dist/source/components/ui/dialog.d.ts +20 -0
  40. package/dist/source/components/ui/dialog.js +182 -0
  41. package/dist/source/components/ui/dropdown-menu.d.ts +28 -0
  42. package/dist/source/components/ui/dropdown-menu.js +282 -0
  43. package/dist/source/components/ui/index.d.ts +19 -0
  44. package/dist/source/components/ui/index.js +131 -0
  45. package/dist/source/components/ui/input.d.ts +6 -0
  46. package/dist/source/components/ui/input.js +49 -0
  47. package/dist/source/components/ui/select.d.ts +16 -0
  48. package/dist/source/components/ui/select.js +197 -0
  49. package/dist/source/components/ui/sonner.d.ts +6 -0
  50. package/dist/source/components/ui/sonner.js +80 -0
  51. package/dist/source/components/ui/switch.d.ts +7 -0
  52. package/dist/source/components/ui/switch.js +54 -0
  53. package/dist/source/components/ui/tabs.d.ts +10 -0
  54. package/dist/source/components/ui/tabs.js +57 -0
  55. package/dist/source/components/ui/textarea.d.ts +6 -0
  56. package/dist/source/components/ui/textarea.js +46 -0
  57. package/dist/source/i18n/config.d.ts +6 -0
  58. package/dist/source/i18n/config.js +12 -0
  59. package/dist/source/i18n/routing.d.ts +371 -0
  60. package/dist/source/i18n/routing.js +17 -0
  61. package/dist/source/lib/design/modal-inert.d.ts +6 -0
  62. package/dist/source/lib/design/modal-inert.js +73 -0
  63. package/dist/source/lib/utils.d.ts +5 -0
  64. package/dist/source/lib/utils.js +8 -0
  65. package/dist/tokens.ts +217 -0
  66. package/docs/components/README.md +21 -0
  67. package/docs/components/avatar.md +47 -0
  68. package/docs/components/badge.md +29 -0
  69. package/docs/components/button.md +39 -0
  70. package/docs/components/card.md +32 -0
  71. package/docs/components/checkbox.md +35 -0
  72. package/docs/components/common.md +31 -0
  73. package/docs/components/composition.md +68 -0
  74. package/docs/components/dialog.md +41 -0
  75. package/docs/components/dropdown-menu.md +38 -0
  76. package/docs/components/input.md +32 -0
  77. package/docs/components/select.md +39 -0
  78. package/docs/components/sonner.md +37 -0
  79. package/docs/components/switch.md +33 -0
  80. package/docs/components/tabs.md +40 -0
  81. package/docs/components/textarea.md +35 -0
  82. package/docs/design/component-demand.md +30 -0
  83. package/docs/design/public-ui-final-verification.md +96 -0
  84. package/docs/design/public-ui-release-validation.md +86 -0
  85. package/docs/design/public-ui-stage3-verification.md +98 -0
  86. package/docs/design/public-ui-stage4-verification.md +129 -0
  87. package/docs/design/public-ui-support.md +40 -0
  88. package/docs/design/v2-migration.md +199 -0
  89. package/docs/package-release.md +89 -0
  90. package/licenses/Noto-Sans-JP-OFL.txt +93 -0
  91. package/licenses/Nunito-Sans-OFL.txt +93 -0
  92. package/licenses/Pretendard-OFL.txt +94 -0
  93. package/licenses/React-MIT.txt +21 -0
  94. package/licenses/Storybook-MIT.txt +21 -0
  95. package/licenses/popper-MIT.txt +25 -0
  96. package/licenses/react-remove-scroll-bar-MIT.txt +21 -0
  97. package/licenses/store2-MIT.txt +22 -0
  98. package/licenses/toggle-selection-MIT.txt +21 -0
  99. package/package.json +182 -34
  100. package/src/styles/components.css +276 -0
  101. package/src/styles/globals.css +18 -0
  102. package/src/styles/theme.css +185 -98
  103. package/messages/en.json +0 -221
  104. package/messages/ja.json +0 -221
  105. package/messages/ko.json +0 -221
  106. package/src/app/globals.css +0 -32
@@ -0,0 +1,12 @@
1
+ const locales = ["en", "ko", "ja"];
2
+ const defaultLocale = "en";
3
+ const localeNames = {
4
+ en: "English",
5
+ ko: "\uD55C\uAD6D\uC5B4",
6
+ ja: "\u65E5\u672C\u8A9E"
7
+ };
8
+ export {
9
+ defaultLocale,
10
+ localeNames,
11
+ locales
12
+ };
@@ -0,0 +1,371 @@
1
+ import * as next_dist_shared_lib_app_router_context_shared_runtime from 'next/dist/shared/lib/app-router-context.shared-runtime';
2
+ import * as next_navigation from 'next/navigation';
3
+ import * as next_intl_navigation from 'next-intl/navigation';
4
+ import * as url from 'url';
5
+ import * as react from 'react';
6
+ import * as next_intl_routing from 'next-intl/routing';
7
+
8
+ declare const routing: {
9
+ locales: readonly ["en", "ko", "ja"];
10
+ defaultLocale: "en" | "ko" | "ja";
11
+ localePrefix?: next_intl_routing.LocalePrefix<readonly ["en", "ko", "ja"], "as-needed"> | undefined;
12
+ domains?: undefined;
13
+ localeCookie?: boolean | {
14
+ maxAge?: number | undefined | undefined;
15
+ priority?: "low" | "medium" | "high" | undefined | undefined;
16
+ domain?: string | undefined | undefined;
17
+ path?: string | undefined | undefined;
18
+ secure?: boolean | undefined | undefined;
19
+ sameSite?: true | false | "lax" | "strict" | "none" | undefined | undefined;
20
+ partitioned?: boolean | undefined | undefined;
21
+ name?: string | undefined;
22
+ };
23
+ alternateLinks?: boolean;
24
+ localeDetection?: boolean;
25
+ };
26
+ declare const Link: react.ForwardRefExoticComponent<Omit<{
27
+ id?: string | undefined | undefined;
28
+ target?: react.HTMLAttributeAnchorTarget | undefined;
29
+ replace?: boolean | undefined;
30
+ slot?: string | undefined | undefined;
31
+ style?: react.CSSProperties | undefined;
32
+ title?: string | undefined | undefined;
33
+ locale?: string | undefined;
34
+ onError?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
35
+ children?: react.ReactNode;
36
+ ref?: react.Ref<HTMLAnchorElement> | undefined;
37
+ prefix?: string | undefined | undefined;
38
+ key?: react.Key | null | undefined;
39
+ as?: (string | url.UrlObject) | undefined;
40
+ scroll?: boolean | undefined;
41
+ shallow?: boolean | undefined;
42
+ passHref?: boolean | undefined;
43
+ prefetch?: boolean | "auto" | null | undefined;
44
+ legacyBehavior?: boolean | undefined;
45
+ onMouseEnter?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
46
+ onTouchStart?: React.TouchEventHandler<HTMLAnchorElement> | undefined;
47
+ onClick?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
48
+ onNavigate?: ((event: {
49
+ preventDefault: () => void;
50
+ }) => void) | undefined;
51
+ download?: any;
52
+ hrefLang?: string | undefined | undefined;
53
+ media?: string | undefined | undefined;
54
+ ping?: string | undefined | undefined;
55
+ type?: string | undefined | undefined;
56
+ referrerPolicy?: react.HTMLAttributeReferrerPolicy | undefined;
57
+ defaultChecked?: boolean | undefined | undefined;
58
+ defaultValue?: string | number | readonly string[] | undefined;
59
+ suppressContentEditableWarning?: boolean | undefined | undefined;
60
+ suppressHydrationWarning?: boolean | undefined | undefined;
61
+ accessKey?: string | undefined | undefined;
62
+ autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
63
+ autoFocus?: boolean | undefined | undefined;
64
+ className?: string | undefined | undefined;
65
+ contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
66
+ contextMenu?: string | undefined | undefined;
67
+ dir?: string | undefined | undefined;
68
+ draggable?: (boolean | "true" | "false") | undefined;
69
+ enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
70
+ hidden?: boolean | undefined | undefined;
71
+ lang?: string | undefined | undefined;
72
+ nonce?: string | undefined | undefined;
73
+ spellCheck?: (boolean | "true" | "false") | undefined;
74
+ tabIndex?: number | undefined | undefined;
75
+ translate?: "yes" | "no" | undefined | undefined;
76
+ radioGroup?: string | undefined | undefined;
77
+ role?: react.AriaRole | undefined;
78
+ about?: string | undefined | undefined;
79
+ content?: string | undefined | undefined;
80
+ datatype?: string | undefined | undefined;
81
+ inlist?: any;
82
+ property?: string | undefined | undefined;
83
+ rel?: string | undefined | undefined;
84
+ resource?: string | undefined | undefined;
85
+ rev?: string | undefined | undefined;
86
+ typeof?: string | undefined | undefined;
87
+ vocab?: string | undefined | undefined;
88
+ autoCorrect?: string | undefined | undefined;
89
+ autoSave?: string | undefined | undefined;
90
+ color?: string | undefined | undefined;
91
+ itemProp?: string | undefined | undefined;
92
+ itemScope?: boolean | undefined | undefined;
93
+ itemType?: string | undefined | undefined;
94
+ itemID?: string | undefined | undefined;
95
+ itemRef?: string | undefined | undefined;
96
+ results?: number | undefined | undefined;
97
+ security?: string | undefined | undefined;
98
+ unselectable?: "on" | "off" | undefined | undefined;
99
+ popover?: "" | "auto" | "manual" | "hint" | undefined | undefined;
100
+ popoverTargetAction?: "toggle" | "show" | "hide" | undefined | undefined;
101
+ popoverTarget?: string | undefined | undefined;
102
+ inert?: boolean | undefined | undefined;
103
+ inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
104
+ is?: string | undefined | undefined;
105
+ exportparts?: string | undefined | undefined;
106
+ part?: string | undefined | undefined;
107
+ tw?: string | undefined;
108
+ "aria-activedescendant"?: string | undefined | undefined;
109
+ "aria-atomic"?: (boolean | "true" | "false") | undefined;
110
+ "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined | undefined;
111
+ "aria-braillelabel"?: string | undefined | undefined;
112
+ "aria-brailleroledescription"?: string | undefined | undefined;
113
+ "aria-busy"?: (boolean | "true" | "false") | undefined;
114
+ "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
115
+ "aria-colcount"?: number | undefined | undefined;
116
+ "aria-colindex"?: number | undefined | undefined;
117
+ "aria-colindextext"?: string | undefined | undefined;
118
+ "aria-colspan"?: number | undefined | undefined;
119
+ "aria-controls"?: string | undefined | undefined;
120
+ "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined | undefined;
121
+ "aria-describedby"?: string | undefined | undefined;
122
+ "aria-description"?: string | undefined | undefined;
123
+ "aria-details"?: string | undefined | undefined;
124
+ "aria-disabled"?: (boolean | "true" | "false") | undefined;
125
+ "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined | undefined;
126
+ "aria-errormessage"?: string | undefined | undefined;
127
+ "aria-expanded"?: (boolean | "true" | "false") | undefined;
128
+ "aria-flowto"?: string | undefined | undefined;
129
+ "aria-grabbed"?: (boolean | "true" | "false") | undefined;
130
+ "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined | undefined;
131
+ "aria-hidden"?: (boolean | "true" | "false") | undefined;
132
+ "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined | undefined;
133
+ "aria-keyshortcuts"?: string | undefined | undefined;
134
+ "aria-label"?: string | undefined | undefined;
135
+ "aria-labelledby"?: string | undefined | undefined;
136
+ "aria-level"?: number | undefined | undefined;
137
+ "aria-live"?: "off" | "assertive" | "polite" | undefined | undefined;
138
+ "aria-modal"?: (boolean | "true" | "false") | undefined;
139
+ "aria-multiline"?: (boolean | "true" | "false") | undefined;
140
+ "aria-multiselectable"?: (boolean | "true" | "false") | undefined;
141
+ "aria-orientation"?: "horizontal" | "vertical" | undefined | undefined;
142
+ "aria-owns"?: string | undefined | undefined;
143
+ "aria-placeholder"?: string | undefined | undefined;
144
+ "aria-posinset"?: number | undefined | undefined;
145
+ "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
146
+ "aria-readonly"?: (boolean | "true" | "false") | undefined;
147
+ "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined | undefined;
148
+ "aria-required"?: (boolean | "true" | "false") | undefined;
149
+ "aria-roledescription"?: string | undefined | undefined;
150
+ "aria-rowcount"?: number | undefined | undefined;
151
+ "aria-rowindex"?: number | undefined | undefined;
152
+ "aria-rowindextext"?: string | undefined | undefined;
153
+ "aria-rowspan"?: number | undefined | undefined;
154
+ "aria-selected"?: (boolean | "true" | "false") | undefined;
155
+ "aria-setsize"?: number | undefined | undefined;
156
+ "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined | undefined;
157
+ "aria-valuemax"?: number | undefined | undefined;
158
+ "aria-valuemin"?: number | undefined | undefined;
159
+ "aria-valuenow"?: number | undefined | undefined;
160
+ "aria-valuetext"?: string | undefined | undefined;
161
+ dangerouslySetInnerHTML?: {
162
+ __html: string | TrustedHTML;
163
+ } | undefined | undefined;
164
+ onCopy?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
165
+ onCopyCapture?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
166
+ onCut?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
167
+ onCutCapture?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
168
+ onPaste?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
169
+ onPasteCapture?: react.ClipboardEventHandler<HTMLAnchorElement> | undefined;
170
+ onCompositionEnd?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
171
+ onCompositionEndCapture?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
172
+ onCompositionStart?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
173
+ onCompositionStartCapture?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
174
+ onCompositionUpdate?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
175
+ onCompositionUpdateCapture?: react.CompositionEventHandler<HTMLAnchorElement> | undefined;
176
+ onFocus?: react.FocusEventHandler<HTMLAnchorElement> | undefined;
177
+ onFocusCapture?: react.FocusEventHandler<HTMLAnchorElement> | undefined;
178
+ onBlur?: react.FocusEventHandler<HTMLAnchorElement> | undefined;
179
+ onBlurCapture?: react.FocusEventHandler<HTMLAnchorElement> | undefined;
180
+ onChange?: react.FormEventHandler<HTMLAnchorElement> | undefined;
181
+ onChangeCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
182
+ onBeforeInput?: react.InputEventHandler<HTMLAnchorElement> | undefined;
183
+ onBeforeInputCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
184
+ onInput?: react.FormEventHandler<HTMLAnchorElement> | undefined;
185
+ onInputCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
186
+ onReset?: react.FormEventHandler<HTMLAnchorElement> | undefined;
187
+ onResetCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
188
+ onSubmit?: react.FormEventHandler<HTMLAnchorElement> | undefined;
189
+ onSubmitCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
190
+ onInvalid?: react.FormEventHandler<HTMLAnchorElement> | undefined;
191
+ onInvalidCapture?: react.FormEventHandler<HTMLAnchorElement> | undefined;
192
+ onLoad?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
193
+ onLoadCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
194
+ onErrorCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
195
+ onKeyDown?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
196
+ onKeyDownCapture?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
197
+ onKeyPress?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
198
+ onKeyPressCapture?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
199
+ onKeyUp?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
200
+ onKeyUpCapture?: react.KeyboardEventHandler<HTMLAnchorElement> | undefined;
201
+ onAbort?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
202
+ onAbortCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
203
+ onCanPlay?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
204
+ onCanPlayCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
205
+ onCanPlayThrough?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
206
+ onCanPlayThroughCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
207
+ onDurationChange?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
208
+ onDurationChangeCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
209
+ onEmptied?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
210
+ onEmptiedCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
211
+ onEncrypted?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
212
+ onEncryptedCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
213
+ onEnded?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
214
+ onEndedCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
215
+ onLoadedData?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
216
+ onLoadedDataCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
217
+ onLoadedMetadata?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
218
+ onLoadedMetadataCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
219
+ onLoadStart?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
220
+ onLoadStartCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
221
+ onPause?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
222
+ onPauseCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
223
+ onPlay?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
224
+ onPlayCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
225
+ onPlaying?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
226
+ onPlayingCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
227
+ onProgress?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
228
+ onProgressCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
229
+ onRateChange?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
230
+ onRateChangeCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
231
+ onSeeked?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
232
+ onSeekedCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
233
+ onSeeking?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
234
+ onSeekingCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
235
+ onStalled?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
236
+ onStalledCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
237
+ onSuspend?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
238
+ onSuspendCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
239
+ onTimeUpdate?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
240
+ onTimeUpdateCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
241
+ onVolumeChange?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
242
+ onVolumeChangeCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
243
+ onWaiting?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
244
+ onWaitingCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
245
+ onAuxClick?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
246
+ onAuxClickCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
247
+ onClickCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
248
+ onContextMenu?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
249
+ onContextMenuCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
250
+ onDoubleClick?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
251
+ onDoubleClickCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
252
+ onDrag?: react.DragEventHandler<HTMLAnchorElement> | undefined;
253
+ onDragCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
254
+ onDragEnd?: react.DragEventHandler<HTMLAnchorElement> | undefined;
255
+ onDragEndCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
256
+ onDragEnter?: react.DragEventHandler<HTMLAnchorElement> | undefined;
257
+ onDragEnterCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
258
+ onDragExit?: react.DragEventHandler<HTMLAnchorElement> | undefined;
259
+ onDragExitCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
260
+ onDragLeave?: react.DragEventHandler<HTMLAnchorElement> | undefined;
261
+ onDragLeaveCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
262
+ onDragOver?: react.DragEventHandler<HTMLAnchorElement> | undefined;
263
+ onDragOverCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
264
+ onDragStart?: react.DragEventHandler<HTMLAnchorElement> | undefined;
265
+ onDragStartCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
266
+ onDrop?: react.DragEventHandler<HTMLAnchorElement> | undefined;
267
+ onDropCapture?: react.DragEventHandler<HTMLAnchorElement> | undefined;
268
+ onMouseDown?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
269
+ onMouseDownCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
270
+ onMouseLeave?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
271
+ onMouseMove?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
272
+ onMouseMoveCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
273
+ onMouseOut?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
274
+ onMouseOutCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
275
+ onMouseOver?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
276
+ onMouseOverCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
277
+ onMouseUp?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
278
+ onMouseUpCapture?: react.MouseEventHandler<HTMLAnchorElement> | undefined;
279
+ onSelect?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
280
+ onSelectCapture?: react.ReactEventHandler<HTMLAnchorElement> | undefined;
281
+ onTouchCancel?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
282
+ onTouchCancelCapture?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
283
+ onTouchEnd?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
284
+ onTouchEndCapture?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
285
+ onTouchMove?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
286
+ onTouchMoveCapture?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
287
+ onTouchStartCapture?: react.TouchEventHandler<HTMLAnchorElement> | undefined;
288
+ onPointerDown?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
289
+ onPointerDownCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
290
+ onPointerMove?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
291
+ onPointerMoveCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
292
+ onPointerUp?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
293
+ onPointerUpCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
294
+ onPointerCancel?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
295
+ onPointerCancelCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
296
+ onPointerEnter?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
297
+ onPointerLeave?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
298
+ onPointerOver?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
299
+ onPointerOverCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
300
+ onPointerOut?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
301
+ onPointerOutCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
302
+ onGotPointerCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
303
+ onGotPointerCaptureCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
304
+ onLostPointerCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
305
+ onLostPointerCaptureCapture?: react.PointerEventHandler<HTMLAnchorElement> | undefined;
306
+ onScroll?: react.UIEventHandler<HTMLAnchorElement> | undefined;
307
+ onScrollCapture?: react.UIEventHandler<HTMLAnchorElement> | undefined;
308
+ onScrollEnd?: react.UIEventHandler<HTMLAnchorElement> | undefined;
309
+ onScrollEndCapture?: react.UIEventHandler<HTMLAnchorElement> | undefined;
310
+ onWheel?: react.WheelEventHandler<HTMLAnchorElement> | undefined;
311
+ onWheelCapture?: react.WheelEventHandler<HTMLAnchorElement> | undefined;
312
+ onAnimationStart?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
313
+ onAnimationStartCapture?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
314
+ onAnimationEnd?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
315
+ onAnimationEndCapture?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
316
+ onAnimationIteration?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
317
+ onAnimationIterationCapture?: react.AnimationEventHandler<HTMLAnchorElement> | undefined;
318
+ onToggle?: react.ToggleEventHandler<HTMLAnchorElement> | undefined;
319
+ onBeforeToggle?: react.ToggleEventHandler<HTMLAnchorElement> | undefined;
320
+ onTransitionCancel?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
321
+ onTransitionCancelCapture?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
322
+ onTransitionEnd?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
323
+ onTransitionEndCapture?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
324
+ onTransitionRun?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
325
+ onTransitionRunCapture?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
326
+ onTransitionStart?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
327
+ onTransitionStartCapture?: react.TransitionEventHandler<HTMLAnchorElement> | undefined;
328
+ href: string | url.UrlObject;
329
+ }, "ref"> & react.RefAttributes<HTMLAnchorElement>>;
330
+ declare const redirect: (args: {
331
+ href: string | {
332
+ pathname: string;
333
+ query?: next_intl_navigation.QueryParams;
334
+ };
335
+ locale: string;
336
+ forcePrefix?: boolean;
337
+ }, type?: next_navigation.RedirectType | undefined) => never;
338
+ declare const usePathname: () => string;
339
+ declare const useRouter: () => {
340
+ push: (href: string | {
341
+ pathname: string;
342
+ query?: next_intl_navigation.QueryParams;
343
+ }, options?: (Partial<next_dist_shared_lib_app_router_context_shared_runtime.NavigateOptions> & {
344
+ locale?: string;
345
+ }) | undefined) => void;
346
+ replace: (href: string | {
347
+ pathname: string;
348
+ query?: next_intl_navigation.QueryParams;
349
+ }, options?: (Partial<next_dist_shared_lib_app_router_context_shared_runtime.NavigateOptions> & {
350
+ locale?: string;
351
+ }) | undefined) => void;
352
+ prefetch: (href: string | {
353
+ pathname: string;
354
+ query?: next_intl_navigation.QueryParams;
355
+ }, options?: (Partial<next_dist_shared_lib_app_router_context_shared_runtime.PrefetchOptions> & {
356
+ locale?: string;
357
+ }) | undefined) => void;
358
+ back(): void;
359
+ forward(): void;
360
+ refresh(): void;
361
+ };
362
+ declare const getPathname: (args: {
363
+ href: string | {
364
+ pathname: string;
365
+ query?: next_intl_navigation.QueryParams;
366
+ };
367
+ locale: string;
368
+ forcePrefix?: boolean;
369
+ }) => string;
370
+
371
+ export { Link, getPathname, redirect, routing, usePathname, useRouter };
@@ -0,0 +1,17 @@
1
+ import { defineRouting } from "next-intl/routing";
2
+ import { createNavigation } from "next-intl/navigation";
3
+ import { locales, defaultLocale } from "./config.js";
4
+ const routing = defineRouting({
5
+ locales,
6
+ defaultLocale,
7
+ localePrefix: "as-needed"
8
+ });
9
+ const { Link, redirect, usePathname, useRouter, getPathname } = createNavigation(routing);
10
+ export {
11
+ Link,
12
+ getPathname,
13
+ redirect,
14
+ routing,
15
+ usePathname,
16
+ useRouter
17
+ };
@@ -0,0 +1,6 @@
1
+ import { Ref } from 'react';
2
+
3
+ declare function useRadixHiddenInert(content: HTMLElement | null): void;
4
+ declare function useOverlayRef<T extends HTMLElement>(consumerRef: Ref<T> | undefined): readonly [T | null, (value: T | null) => () => void];
5
+
6
+ export { useOverlayRef, useRadixHiddenInert };
@@ -0,0 +1,73 @@
1
+ "use client";
2
+ import { useEffect, useMemo, useState } from "react";
3
+ const ownershipKey = /* @__PURE__ */ Symbol.for("@naeil/ui/radix-hidden-inert/v1");
4
+ function ownershipFor(doc) {
5
+ var _a;
6
+ const shared = doc;
7
+ return (_a = shared[ownershipKey]) != null ? _a : shared[ownershipKey] = /* @__PURE__ */ new WeakMap();
8
+ }
9
+ function useRadixHiddenInert(content) {
10
+ useEffect(() => {
11
+ if (!content) return;
12
+ const doc = content.ownerDocument;
13
+ const ownership = ownershipFor(doc);
14
+ const held = /* @__PURE__ */ new Set();
15
+ function release(element) {
16
+ held.delete(element);
17
+ const state = ownership.get(element);
18
+ if (!state || --state.users > 0) return;
19
+ element.inert = state.original;
20
+ ownership.delete(element);
21
+ }
22
+ function sync() {
23
+ const hidden = (content == null ? void 0 : content.isConnected) && content.dataset.state === "open" ? [...doc.querySelectorAll('[data-aria-hidden="true"][aria-hidden="true"]')].filter((element) => !element.contains(content)) : [];
24
+ const desired = new Set(hidden);
25
+ for (const element of held) if (!desired.has(element)) release(element);
26
+ for (const element of desired) {
27
+ if (held.has(element)) continue;
28
+ let state = ownership.get(element);
29
+ if (!state) {
30
+ state = { users: 0, original: element.inert };
31
+ ownership.set(element, state);
32
+ }
33
+ state.users++;
34
+ held.add(element);
35
+ element.inert = true;
36
+ }
37
+ }
38
+ const observer = new MutationObserver(sync);
39
+ observer.observe(doc.body, {
40
+ subtree: true,
41
+ childList: true,
42
+ attributes: true,
43
+ attributeFilter: ["aria-hidden", "data-aria-hidden", "data-state"]
44
+ });
45
+ sync();
46
+ return () => {
47
+ observer.disconnect();
48
+ for (const element of held) release(element);
49
+ };
50
+ }, [content]);
51
+ }
52
+ function assignObjectRef(ref, node) {
53
+ ref.current = node;
54
+ }
55
+ function useOverlayRef(consumerRef) {
56
+ const [node, setNode] = useState(null);
57
+ const ref = useMemo(() => (value) => {
58
+ setNode(value);
59
+ const cleanup = typeof consumerRef === "function" ? consumerRef(value) : void 0;
60
+ if (consumerRef && typeof consumerRef !== "function") assignObjectRef(consumerRef, value);
61
+ return () => {
62
+ setNode(null);
63
+ if (typeof cleanup === "function") cleanup();
64
+ else if (typeof consumerRef === "function") consumerRef(null);
65
+ else if (consumerRef) assignObjectRef(consumerRef, null);
66
+ };
67
+ }, [consumerRef]);
68
+ return [node, ref];
69
+ }
70
+ export {
71
+ useOverlayRef,
72
+ useRadixHiddenInert
73
+ };
@@ -0,0 +1,5 @@
1
+ import { ClassValue } from 'clsx';
2
+
3
+ declare function cn(...inputs: ClassValue[]): string;
4
+
5
+ export { cn };
@@ -0,0 +1,8 @@
1
+ import { clsx } from "clsx";
2
+ import { twMerge } from "tailwind-merge";
3
+ function cn(...inputs) {
4
+ return twMerge(clsx(inputs));
5
+ }
6
+ export {
7
+ cn
8
+ };