@xenide-io/the-old-ui-theme 0.3.2 → 0.4.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.
- package/dist/{chunk-5HSOBJ4F.mjs → chunk-KORWJCIO.mjs} +600 -932
- package/dist/{index-BgG8Homu.d.mts → index-B5NOyoKS.d.mts} +100 -100
- package/dist/{index-BgG8Homu.d.ts → index-B5NOyoKS.d.ts} +100 -100
- package/dist/index.d.mts +9 -145
- package/dist/index.d.ts +9 -145
- package/dist/index.js +653 -1111
- package/dist/index.mjs +9 -267
- package/dist/suite.d.mts +760 -0
- package/dist/suite.d.ts +760 -0
- package/dist/suite.js +2564 -0
- package/dist/suite.mjs +2465 -0
- package/dist/ui.d.mts +1 -2
- package/dist/ui.d.ts +1 -2
- package/dist/ui.js +14 -10
- package/dist/ui.mjs +1 -1
- package/package.json +43 -24
- package/src/components/icons/icons.tsx +0 -2
- package/src/components/icons/index.ts +0 -3
- package/src/components/sections/IconShowcase.tsx +1 -110
- package/src/components/sections/NewComponentsShowcase.tsx +4 -4
- package/src/components/sections/SidebarShowcase.tsx +3 -3
- package/src/components/sections/SuiteShowcase.tsx +669 -0
- package/src/components/ui/ComponentDocs.tsx +2 -2
- package/src/components/ui/ContextMenu.tsx +1 -1
- package/src/components/ui/Menubar.tsx +1 -1
- package/src/components/ui/Sidebar.tsx +10 -8
- package/src/styles/suite-skin.css +255 -0
- package/src/suite/components/ai-panel.tsx +202 -0
- package/src/suite/components/app-switcher.tsx +196 -0
- package/src/suite/components/command-palette-host.tsx +62 -0
- package/src/suite/components/deferred-chrome.tsx +12 -0
- package/src/suite/components/suite-app-layout.tsx +69 -0
- package/src/suite/components/suite-bottom-nav.tsx +113 -0
- package/src/suite/components/suite-layout.tsx +287 -0
- package/src/suite/components/suite-mobile-drawer.tsx +150 -0
- package/src/suite/components/suite-mobile-header.tsx +71 -0
- package/src/suite/components/suite-notification-bell.tsx +227 -0
- package/src/suite/components/suite-settings-mobile-nav.tsx +83 -0
- package/src/suite/components/suite-sidebar.tsx +191 -0
- package/src/suite/components/suite-skeleton.tsx +191 -0
- package/src/suite/components/suite-user-menu.tsx +128 -0
- package/src/suite/components/theme-provider.tsx +174 -0
- package/src/suite/components/today-calibrating.tsx +95 -0
- package/src/suite/components/today-page-frame.tsx +28 -0
- package/src/suite/components/today-ui.tsx +370 -0
- package/src/suite/icons/app-accents.ts +75 -0
- package/src/suite/icons/glyph-parts.tsx +67 -0
- package/src/suite/icons/glyphs.ts +203 -0
- package/src/suite/icons/index.ts +12 -0
- package/src/suite/icons/suite-app-icon.tsx +68 -0
- package/src/suite/icons/suite-icon.tsx +93 -0
- package/src/suite/index.ts +108 -0
- package/src/suite/lib/apps.ts +75 -0
- package/src/suite/lib/cn.ts +6 -0
- package/src/suite/lib/injected.ts +54 -0
- package/src/suite/lib/motion.tsx +48 -0
- package/src/suite/lib/use-idle-mount.ts +25 -0
- package/src/components/icons/lemon-brand-icons.tsx +0 -16
- package/src/components/icons/lemon-category-icons.tsx +0 -72
- package/src/components/icons/lemon-icons.tsx +0 -57
package/dist/index.js
CHANGED
|
@@ -119,216 +119,84 @@ __export(src_exports, {
|
|
|
119
119
|
H5: () => H5,
|
|
120
120
|
HoverCard: () => HoverCard,
|
|
121
121
|
Icon: () => IconBase,
|
|
122
|
-
Icon123: () => Icon123,
|
|
123
|
-
IconAI: () => IconAI,
|
|
124
|
-
IconAction: () => IconAction,
|
|
125
122
|
IconActivity: () => IconActivity,
|
|
126
|
-
IconAdsClick: () => IconAdsClick,
|
|
127
|
-
IconAndroidOS: () => IconAndroidOS,
|
|
128
|
-
IconAppleIOS: () => IconAppleIOS,
|
|
129
|
-
IconArchive: () => IconArchive,
|
|
130
123
|
IconAreaChart: () => IconAreaChart,
|
|
131
124
|
IconArrowDown: () => IconArrowDown,
|
|
132
125
|
IconArrowUp: () => IconArrowUp,
|
|
133
|
-
IconAtSign: () => IconAtSign,
|
|
134
|
-
IconBadge: () => IconBadge,
|
|
135
126
|
IconBase: () => IconBase,
|
|
136
127
|
IconBell: () => IconBell,
|
|
137
128
|
IconBellOff: () => IconBellOff,
|
|
138
|
-
IconBinary: () => IconBinary,
|
|
139
|
-
IconBlank: () => IconBlank,
|
|
140
|
-
IconBold: () => IconBold,
|
|
141
129
|
IconBolt: () => IconBolt,
|
|
142
|
-
IconBook: () => IconBook,
|
|
143
|
-
IconBookmarkBorder: () => IconBookmarkBorder,
|
|
144
130
|
IconBox: () => IconBox,
|
|
145
|
-
IconBranch: () => IconBranch,
|
|
146
|
-
IconBug: () => IconBug,
|
|
147
131
|
IconByName: () => IconByName,
|
|
148
|
-
IconCalculate: () => IconCalculate,
|
|
149
|
-
IconCalendar: () => IconCalendar,
|
|
150
|
-
IconCalendarDay: () => IconCalendarDay,
|
|
151
132
|
IconCancel: () => IconCancel,
|
|
152
|
-
IconCart: () => IconCart,
|
|
153
|
-
IconChat: () => IconChat,
|
|
154
133
|
IconCheck: () => IconCheck,
|
|
155
134
|
IconCheckCircle: () => IconCheckCircle,
|
|
156
|
-
IconCheckboxChecked: () => IconCheckboxChecked,
|
|
157
135
|
IconChevronDown: () => IconChevronDown,
|
|
158
136
|
IconChevronLeft: () => IconChevronLeft,
|
|
159
137
|
IconChevronRight: () => IconChevronRight,
|
|
160
|
-
IconChrome: () => IconChrome,
|
|
161
138
|
IconClipboardEdit: () => IconClipboardEdit,
|
|
162
|
-
IconClock: () => IconClock,
|
|
163
139
|
IconClose: () => IconClose,
|
|
164
|
-
IconCloud: () => IconCloud,
|
|
165
140
|
IconCodePreview: () => IconCodePreview,
|
|
166
|
-
IconCoffee: () => IconCoffee,
|
|
167
141
|
IconCohort: () => IconCohort,
|
|
168
142
|
IconCommandCursor: () => IconCommandCursor,
|
|
169
|
-
IconConfetti: () => IconConfetti,
|
|
170
143
|
IconCopy: () => IconCopy,
|
|
171
|
-
IconCrown: () => IconCrown,
|
|
172
144
|
IconCumulativeChart: () => IconCumulativeChart,
|
|
173
145
|
IconDataReel: () => IconDataReel,
|
|
174
146
|
IconDatabase: () => IconDatabase,
|
|
175
|
-
IconDevices: () => IconDevices,
|
|
176
|
-
IconDocument: () => IconDocument,
|
|
177
147
|
IconDownload: () => IconDownload,
|
|
178
|
-
IconDownloadCloud: () => IconDownloadCloud,
|
|
179
|
-
IconDragHandle: () => IconDragHandle,
|
|
180
148
|
IconEdit: () => IconEdit,
|
|
181
149
|
IconErrorOutline: () => IconErrorOutline,
|
|
182
|
-
IconEvent: () => IconEvent,
|
|
183
150
|
IconEventStream: () => IconEventStream,
|
|
184
151
|
IconExclamation: () => IconExclamation,
|
|
185
152
|
IconExperimentSplit: () => IconExperimentSplit,
|
|
186
|
-
IconExternalLink: () => IconExternalLink,
|
|
187
|
-
IconEye: () => IconEye,
|
|
188
|
-
IconEyeHidden: () => IconEyeHidden,
|
|
189
|
-
IconFacebook: () => IconFacebook,
|
|
190
153
|
IconFeatureGate: () => IconFeatureGate,
|
|
191
|
-
IconFeedback: () => IconFeedback,
|
|
192
|
-
IconFile: () => IconFile,
|
|
193
|
-
IconFilter: () => IconFilter,
|
|
194
|
-
IconFingerprint: () => IconFingerprint,
|
|
195
|
-
IconFirefox: () => IconFirefox,
|
|
196
154
|
IconFlag: () => IconFlag,
|
|
197
155
|
IconFlare: () => IconFlare,
|
|
198
156
|
IconFlask: () => IconFlask,
|
|
199
|
-
IconFolder: () => IconFolder,
|
|
200
|
-
IconForward: () => IconForward,
|
|
201
|
-
IconFullScreen: () => IconFullScreen,
|
|
202
|
-
IconFunnelHorizontal: () => IconFunnelHorizontal,
|
|
203
|
-
IconFunnelVertical: () => IconFunnelVertical,
|
|
204
|
-
IconGear: () => IconGear,
|
|
205
|
-
IconGhost: () => IconGhost,
|
|
206
157
|
IconGift: () => IconGift,
|
|
207
|
-
IconGitlab: () => IconGitlab,
|
|
208
|
-
IconGlobe: () => IconGlobe,
|
|
209
|
-
IconGoogle: () => IconGoogle,
|
|
210
158
|
IconGridView: () => IconGridView,
|
|
211
|
-
IconGroupedEvents: () => IconGroupedEvents,
|
|
212
|
-
IconGroups: () => IconGroups,
|
|
213
159
|
IconHandClick: () => IconHandClick,
|
|
214
|
-
IconHash: () => IconHash,
|
|
215
|
-
IconHeadphones: () => IconHeadphones,
|
|
216
|
-
IconHeart: () => IconHeart,
|
|
217
|
-
IconHeatmap: () => IconHeatmap,
|
|
218
160
|
IconHome: () => IconHome,
|
|
219
|
-
IconHomeFilled: () => IconHomeFilled,
|
|
220
|
-
IconHourglass: () => IconHourglass,
|
|
221
|
-
IconImage: () => IconImage,
|
|
222
|
-
IconInbox: () => IconInbox,
|
|
223
161
|
IconInfo: () => IconInfo,
|
|
224
|
-
IconInfoFilled: () => IconInfoFilled,
|
|
225
162
|
IconInsightBoard: () => IconInsightBoard,
|
|
226
|
-
IconItalic: () => IconItalic,
|
|
227
|
-
IconKey: () => IconKey,
|
|
228
|
-
IconKeyFilled: () => IconKeyFilled,
|
|
229
|
-
IconLaptop: () => IconLaptop,
|
|
230
163
|
IconLayers: () => IconLayers,
|
|
231
|
-
IconLayout: () => IconLayout,
|
|
232
|
-
IconLifeBuoy: () => IconLifeBuoy,
|
|
233
|
-
IconLightBulb: () => IconLightBulb,
|
|
234
|
-
IconLink: () => IconLink,
|
|
235
|
-
IconLinkBreak: () => IconLinkBreak,
|
|
236
|
-
IconLinux: () => IconLinux,
|
|
237
164
|
IconListView: () => IconListView,
|
|
238
|
-
IconLocation: () => IconLocation,
|
|
239
|
-
IconLock: () => IconLock,
|
|
240
165
|
IconLogout: () => IconLogout,
|
|
241
|
-
IconMacOS: () => IconMacOS,
|
|
242
166
|
IconMail: () => IconMail,
|
|
243
|
-
IconMap: () => IconMap,
|
|
244
|
-
IconMapPin: () => IconMapPin,
|
|
245
|
-
IconMaximize: () => IconMaximize,
|
|
246
|
-
IconMegaphone: () => IconMegaphone,
|
|
247
|
-
IconMenu: () => IconMenu,
|
|
248
|
-
IconMic: () => IconMic,
|
|
249
|
-
IconMicrosoftTeams: () => IconMicrosoftTeams,
|
|
250
|
-
IconMinimize: () => IconMinimize,
|
|
251
|
-
IconMinus: () => IconMinus,
|
|
252
|
-
IconMonitor: () => IconMonitor,
|
|
253
167
|
IconMoon: () => IconMoon,
|
|
254
|
-
IconMoonFilled: () => IconMoonFilled,
|
|
255
|
-
IconMoreHorizontal: () => IconMoreHorizontal,
|
|
256
|
-
IconMoreVertical: () => IconMoreVertical,
|
|
257
|
-
IconMusic: () => IconMusic,
|
|
258
|
-
IconNavigation: () => IconNavigation,
|
|
259
|
-
IconNodeJS: () => IconNodeJS,
|
|
260
|
-
IconOffline: () => IconOffline,
|
|
261
168
|
IconOldWindow: () => IconOldWindow,
|
|
262
|
-
IconOpenInApp: () => IconOpenInApp,
|
|
263
|
-
IconOpenInNew: () => IconOpenInNew,
|
|
264
|
-
IconPalette: () => IconPalette,
|
|
265
169
|
IconPanelRight: () => IconPanelRight,
|
|
266
|
-
IconPaperclip: () => IconPaperclip,
|
|
267
|
-
IconPauseCircle: () => IconPauseCircle,
|
|
268
|
-
IconPeople: () => IconPeople,
|
|
269
|
-
IconPercent: () => IconPercent,
|
|
270
170
|
IconPerson: () => IconPerson,
|
|
271
|
-
IconPhone: () => IconPhone,
|
|
272
|
-
IconPin: () => IconPin,
|
|
273
171
|
IconPlayCircle: () => IconPlayCircle,
|
|
274
172
|
IconPlus: () => IconPlus,
|
|
275
173
|
IconPremium: () => IconPremium,
|
|
276
|
-
IconPreview: () => IconPreview,
|
|
277
|
-
IconPrinter: () => IconPrinter,
|
|
278
174
|
IconQueryEditor: () => IconQueryEditor,
|
|
279
175
|
IconQueryStack: () => IconQueryStack,
|
|
280
|
-
IconQuestionAnswer: () => IconQuestionAnswer,
|
|
281
176
|
IconRadar: () => IconRadar,
|
|
282
|
-
IconRadioButtonUnchecked: () => IconRadioButtonUnchecked,
|
|
283
177
|
IconRecording: () => IconRecording,
|
|
284
|
-
IconRedo: () => IconRedo,
|
|
285
|
-
IconRefresh: () => IconRefresh,
|
|
286
|
-
IconReplay: () => IconReplay,
|
|
287
178
|
IconReplayFrame: () => IconReplayFrame,
|
|
288
|
-
IconReply: () => IconReply,
|
|
289
|
-
IconReport: () => IconReport,
|
|
290
179
|
IconRobot: () => IconRobot,
|
|
291
180
|
IconRocket: () => IconRocket,
|
|
292
|
-
IconSafari: () => IconSafari,
|
|
293
181
|
IconSave: () => IconSave,
|
|
294
182
|
IconSearch: () => IconSearch,
|
|
295
|
-
IconSelectAll: () => IconSelectAll,
|
|
296
183
|
IconSelectEvents: () => IconSelectEvents,
|
|
297
184
|
IconShoppingCart: () => IconShoppingCart,
|
|
298
|
-
IconSkipBackward: () => IconSkipBackward,
|
|
299
|
-
IconSkipEnd: () => IconSkipEnd,
|
|
300
|
-
IconSkipStart: () => IconSkipStart,
|
|
301
|
-
IconSlack: () => IconSlack,
|
|
302
|
-
IconSlackExternal: () => IconSlackExternal,
|
|
303
185
|
IconSpinner: () => IconSpinner,
|
|
304
|
-
IconStamphog: () => IconStamphog,
|
|
305
186
|
IconStar: () => IconStar,
|
|
306
|
-
IconStore: () => IconStore,
|
|
307
187
|
IconSubArrowRight: () => IconSubArrowRight,
|
|
308
|
-
IconSubtitles: () => IconSubtitles,
|
|
309
|
-
IconSubtitlesOff: () => IconSubtitlesOff,
|
|
310
188
|
IconSun: () => IconSun,
|
|
311
189
|
IconSurveyCard: () => IconSurveyCard,
|
|
312
190
|
IconSurveys: () => IconSurveys,
|
|
313
|
-
IconSwapHoriz: () => IconSwapHoriz,
|
|
314
191
|
IconSync: () => IconSync,
|
|
315
192
|
IconTableChart: () => IconTableChart,
|
|
316
193
|
IconTerminal: () => IconTerminal,
|
|
317
|
-
IconTextSize: () => IconTextSize,
|
|
318
194
|
IconToggle: () => IconToggle,
|
|
319
195
|
IconTrash: () => IconTrash,
|
|
320
|
-
IconTrendingDown: () => IconTrendingDown,
|
|
321
|
-
IconTrendingFlat: () => IconTrendingFlat,
|
|
322
|
-
IconTrendingFlatDown: () => IconTrendingFlatDown,
|
|
323
196
|
IconTuning: () => IconTuning,
|
|
324
|
-
IconUnverifiedEvent: () => IconUnverifiedEvent,
|
|
325
197
|
IconUpload: () => IconUpload,
|
|
326
|
-
IconVerifiedEvent: () => IconVerifiedEvent,
|
|
327
|
-
IconVerticalAlignCenter: () => IconVerticalAlignCenter,
|
|
328
198
|
IconVolume: () => IconVolume,
|
|
329
199
|
IconVolumeOff: () => IconVolumeOff,
|
|
330
|
-
IconWeb: () => IconWeb,
|
|
331
|
-
IconWindows: () => IconWindows,
|
|
332
200
|
Indicator: () => Indicator,
|
|
333
201
|
Input: () => Input,
|
|
334
202
|
InputGroup: () => InputGroup,
|
|
@@ -1060,212 +928,8 @@ var IconByName = (0, import_react4.forwardRef)(function IconByName2(_a, ref) {
|
|
|
1060
928
|
});
|
|
1061
929
|
IconByName.displayName = "IconByName";
|
|
1062
930
|
|
|
1063
|
-
// src/components/icons/lemon-icons.tsx
|
|
1064
|
-
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
1065
|
-
var p = (d) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d, fill: "currentColor" });
|
|
1066
|
-
var IconTextSize = createIconBase({ paths: p("M2 4V7H7V19H10V7H15V4H2M21 9H12V12H15V19H18V12H21V9Z") });
|
|
1067
|
-
var IconBranch = createIconBase({ paths: p("M13,14C9.64,14 8.54,15.35 8.18,16.24C9.25,16.7 10,17.76 10,19A3,3 0 0,1 7,22A3,3 0 0,1 4,19C4,17.69 4.83,16.58 6,16.17V7.83C4.83,7.42 4,6.31 4,5A3,3 0 0,1 7,2A3,3 0 0,1 10,5C10,6.31 9.17,7.42 8,7.83V13.12C8.88,12.47 10.16,12 12,12C14.67,12 15.56,10.66 15.85,9.77C14.77,9.32 14,8.25 14,7A3,3 0 0,1 17,4A3,3 0 0,1 20,7C20,8.34 19.12,9.5 17.91,9.86C17.65,11.29 16.68,14 13,14M7,18A1,1 0 0,0 6,19A1,1 0 0,0 7,20A1,1 0 0,0 8,19A1,1 0 0,0 7,18M7,4A1,1 0 0,0 6,5A1,1 0 0,0 7,6A1,1 0 0,0 8,5A1,1 0 0,0 7,4M17,6A1,1 0 0,0 16,7A1,1 0 0,0 17,8A1,1 0 0,0 18,7A1,1 0 0,0 17,6Z") });
|
|
1068
|
-
var IconFeedback = createIconBase({ viewBox: "0 0 32 32", paths: p("M26.6667 2.66663H5.33341C3.86675 2.66663 2.68008 3.86663 2.68008 5.33329L2.66675 29.3333L8.00008 24H26.6667C28.1334 24 29.3334 22.8 29.3334 21.3333V5.33329C29.3334 3.86663 28.1334 2.66663 26.6667 2.66663ZM26.6667 21.3333H6.89341L6.10675 22.12L5.33341 22.8933V5.33329H26.6667V21.3333ZM14.6667 16H17.3334V18.6666H14.6667V16ZM14.6667 7.99996H17.3334V13.3333H14.6667V7.99996Z") });
|
|
1069
|
-
var IconSelectAll = createIconBase({ paths: p("M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2zM7 17h10V7H7v10zm2-8h6v6H9V9z") });
|
|
1070
|
-
var IconKey = createIconBase({ paths: p("M21,10h-8.35C11.83,7.67,9.61,6,7,6c-3.31,0-6,2.69-6,6s2.69,6,6,6c2.61,0,4.83-1.67,5.65-4H13l2,2l2-2l2,2l4-4.04L21,10z M7,15c-1.65,0-3-1.35-3-3c0-1.65,1.35-3,3-3s3,1.35,3,3C10,13.65,8.65,15,7,15z") });
|
|
1071
|
-
var IconOpenInApp = createIconBase({ paths: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", d: "m12 10l-4 4h3v6h2v-6h3m3-10H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h4v-2H5V8h14v10h-4v2h4a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2Z" }) });
|
|
1072
|
-
var IconSwapHoriz = createIconBase({ paths: p("m6.99 11-3.99 4 3.99 4v-3h7.01v-2h-7.01zm14.01-2-3.99-4v3h-7.01v2h7.01v3z") });
|
|
1073
|
-
var IconBlank = createIconBase({ paths: null });
|
|
1074
|
-
var IconRadioButtonUnchecked = createIconBase({ paths: p("M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z") });
|
|
1075
|
-
var IconOffline = createIconBase({ paths: p("m12 2.02c-5.51 0-9.98 4.47-9.98 9.98s4.47 9.98 9.98 9.98 9.98-4.47 9.98-9.98-4.47-9.98-9.98-9.98zm0 17.96c-4.4 0-7.98-3.58-7.98-7.98s3.58-7.98 7.98-7.98 7.98 3.58 7.98 7.98-3.58 7.98-7.98 7.98zm.75-14.98-4.5 8.5h3.14v5.5l4.36-8.5h-3z") });
|
|
1076
|
-
var IconMenu = createIconBase({ paths: p("m3 18h18v-2h-18zm0-5h18v-2h-18zm0-7v2h18v-2z") });
|
|
1077
|
-
var IconSubtitles = createIconBase({ paths: p("m20 4h-16c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-12c0-1.1-.9-2-2-2zm0 14h-16v-12h16zm-14-8h2v2h-2zm0 4h8v2h-8zm10 0h2v2h-2zm-6-4h8v2h-8z") });
|
|
1078
|
-
var IconSubtitlesOff = createIconBase({ paths: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1079
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", d: "m20.0001 4h-13.17002l2 2h11.17002v11.17l1.76 1.76c.15-.28.24-.59.24-.93v-12c0-1.1-.9-2-2-2z" }),
|
|
1080
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", d: "m18.0001 10h-5.17l2 2h3.17z" }),
|
|
1081
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", d: "m1.04004 3.86922 1.2 1.2c-.15.28-.24.59-.24.93v11.99998c0 1.1.9 2 2 2h13.16996l2.96 2.96 1.41-1.41-19.08996-19.09998zm2.96 2.96 3.17 3.17h-1.17v1.99998h2v-1.17l3.16996 3.17h-5.16996v2h7.16996l2 2h-11.16996z" })
|
|
1082
|
-
] }) });
|
|
1083
|
-
var IconCalculate = createIconBase({ paths: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1084
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", d: "m19 3h-14c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2zm0 16h-14v-14h14z" }),
|
|
1085
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", d: "m11.25 7.7207h-5v1.5h5z" }),
|
|
1086
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", d: "m18 15.75h-5v1.5h5z" }),
|
|
1087
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", d: "m18 13.25h-5v1.5h5z" }),
|
|
1088
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", d: "m8 18h1.5v-2h2v-1.5h-2v-2h-1.5v2h-2v1.5h2z" }),
|
|
1089
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", d: "m14.09 10.95 1.41-1.41 1.41 1.41 1.06-1.06-1.41-1.42 1.41-1.41-1.06-1.06-1.41 1.41-1.41-1.41-1.06 1.06 1.41 1.41-1.41 1.42z" })
|
|
1090
|
-
] }) });
|
|
1091
|
-
var IconGroupedEvents = createIconBase({ paths: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", fillRule: "evenodd", clipRule: "evenodd", d: "m2 6h2v14h14v2h-14c-1.1 0-2-.9-2-2zm6-4h12c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2h-12c-1.1 0-2-.9-2-2v-12c0-1.1.9-2 2-2zm0 14h12v-12h-12zm4.6851-3.6586-.5398 1.6584h-1.6477l2.5106-7.27275h1.9815l2.5071 7.27275h-1.6477l-.5398-1.6584zm1.2855-3.95242-.8949 2.75212h1.8466l-.8949-2.75212z" }) });
|
|
1092
|
-
var IconQuestionAnswer = createIconBase({ paths: p("m15 4v7h-9.83l-1.17 1.17v-8.17zm1-2h-13c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1v-9c0-.55-.45-1-1-1zm5 4h-2v9h-13v2c0 .55.45 1 1 1h11l4 4v-15c0-.55-.45-1-1-1z") });
|
|
1093
|
-
var IconOpenInNew = createIconBase({ paths: p("m19 19h-14v-14h7v-2h-7c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zm-5-16v2h3.59l-9.83 9.83 1.41 1.41 9.83-9.83v3.59h2v-7z") });
|
|
1094
|
-
var IconTrendingFlat = createIconBase({ paths: p("m20 12-4-4v3h-12v2h12v3z") });
|
|
1095
|
-
var IconTrendingFlatDown = createIconBase({ paths: p("m17.6567 17.6558v-5.6568l-2.1214 2.1213-8.48523-8.48531-1.41422 1.41422 8.48525 8.48529-2.1213 2.1213z") });
|
|
1096
|
-
var IconTrendingDown = createIconBase({ paths: p("m16 18 2.29-2.29-4.88-4.88-4 4-7.41-7.42 1.41-1.41 6 6 4-4 6.3 6.29 2.29-2.29v6z") });
|
|
1097
|
-
var IconAction = createIconBase({ viewBox: "0 0 20 20", paths: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", fillRule: "evenodd", clipRule: "evenodd", d: "M0 4H2V18H16V20H2C0.9 20 0 19.1 0 18V4ZM6 0H18C19.1 0 20 0.9 20 2V14C20 15.1 19.1 16 18 16H6C4.9 16 4 15.1 4 14V2C4 0.9 4.9 0 6 0ZM6 14H18V2H6V14ZM10.6851 10.3414L10.1453 11.9998H8.49756L11.0082 4.72705H12.9897L15.4968 11.9998H13.8491L13.3093 10.3414H10.6851ZM11.9706 6.38898L11.0757 9.14111H12.9223L12.0274 6.38898H11.9706Z" }) });
|
|
1098
|
-
var IconEvent = createIconBase({ viewBox: "0 0 20 10", paths: p("M7.4 10.6L2.8 6L7.4 1.4L6 0L0 6L6 12L7.4 10.6ZM12.6 10.6L17.2 6L12.6 1.4L14 0L20 6L14 12L12.6 10.6Z") });
|
|
1099
|
-
var IconReplay = createIconBase({ paths: p("m12 5v-4l-5 5 5 5v-4c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6h-2c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z") });
|
|
1100
|
-
var IconHeatmap = createIconBase({ viewBox: "0 0 32 32", paths: p("M17.5 1.49056C17.5 0.00305736 15.5844 -0.557568 14.7406 0.675557C7 11.9899 18 12.4993 18 17.9993C18 20.2262 16.1806 22.0281 13.9469 21.9987C11.7487 21.9706 10 20.1381 10 17.9399V12.5956C10 11.2393 8.34562 10.5812 7.41062 11.5643C5.7375 13.3218 4 16.3324 4 19.9993C4 26.6162 9.38312 31.9993 16 31.9993C22.6169 31.9993 28 26.6162 28 19.9993C28 9.35618 17.5 7.93681 17.5 1.49056V1.49056Z") });
|
|
1101
|
-
var IconUnverifiedEvent = createIconBase({ paths: p("M4.8 17.4H19.2V15.6H4.8V17.4ZM6.6 21H17.4V19.2H6.6V21ZM19.2 13.8H4.8C3.81 13.8 3 12.99 3 12V4.8C3 3.81 3.81 3 4.8 3H19.2C20.19 3 21 3.81 21 4.8V12C21 12.99 20.19 13.8 19.2 13.8ZM19.2 4.8H4.8V12H19.2V4.8Z") });
|
|
1102
|
-
var IconVerifiedEvent = createIconBase({ paths: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1103
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", d: "M14 3H4.8C3.81 3 3 3.81 3 4.8V12C3 12.99 3.81 13.8 4.8 13.8H19.2C20.19 13.8 21 12.99 21 12V10H19.2V12H4.8V4.8H14V3ZM19.2 17.4H4.8V15.6H19.2V17.4ZM17.4 21H6.6V19.2H17.4V21Z" }),
|
|
1104
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", d: "M17.7289 6.04489L16.0628 4.37164L15 5.44166L17.7289 8.17774L23 2.89228L21.9372 1.82227L17.7289 6.04489Z" })
|
|
1105
|
-
] }) });
|
|
1106
|
-
var IconBookmarkBorder = createIconBase({ viewBox: "-4 -3 24 24", paths: p("M12.5 0H2.5C1.4 0 0.5 0.9 0.5 2V18L7.5 15L14.5 18V2C14.5 0.9 13.6 0 12.5 0ZM12.5 15L7.5 12.82L2.5 15V2H12.5V15Z") });
|
|
1107
|
-
var IconWeb = createIconBase({ paths: p("M16.36,14C16.44,13.34 16.5,12.68 16.5,12C16.5,11.32 16.44,10.66 16.36,10H19.74C19.9,10.64 20,11.31 20,12C20,12.69 19.9,13.36 19.74,14M14.59,19.56C15.19,18.45 15.65,17.25 15.97,16H18.92C17.96,17.65 16.43,18.93 14.59,19.56M14.34,14H9.66C9.56,13.34 9.5,12.68 9.5,12C9.5,11.32 9.56,10.65 9.66,10H14.34C14.43,10.65 14.5,11.32 14.5,12C14.5,12.68 14.43,13.34 14.34,14M12,19.96C11.17,18.76 10.5,17.43 10.09,16H13.91C13.5,17.43 12.83,18.76 12,19.96M8,8H5.08C6.03,6.34 7.57,5.06 9.4,4.44C8.8,5.55 8.35,6.75 8,8M5.08,16H8C8.35,17.25 8.8,18.45 9.4,19.56C7.57,18.93 6.03,17.65 5.08,16M4.26,14C4.1,13.36 4,12.69 4,12C4,11.31 4.1,10.64 4.26,10H7.64C7.56,10.66 7.5,11.32 7.5,12C7.5,12.68 7.56,13.34 7.64,14M12,4.03C12.83,5.23 13.5,6.57 13.91,8H10.09C10.5,6.57 11.17,5.23 12,4.03M18.92,8H15.97C15.65,6.75 15.19,5.55 14.59,4.44C16.43,5.07 17.96,6.34 18.92,8M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z") });
|
|
1108
|
-
var IconMonitor = createIconBase({ paths: p("M21,16H3V4H21M21,2H3C1.89,2 1,2.89 1,4V16A2,2 0 0,0 3,18H10V20H8V22H16V20H14V18H21A2,2 0 0,0 23,16V4C23,2.89 22.1,2 21,2Z") });
|
|
1109
|
-
var IconBold = createIconBase({ paths: p("M6.8 19V5H12.325C13.4083 5 14.4083 5.33333 15.325 6C16.2417 6.66667 16.7 7.59167 16.7 8.775C16.7 9.625 16.5083 10.2792 16.125 10.7375C15.7417 11.1958 15.3833 11.525 15.05 11.725C15.4667 11.9083 15.9292 12.25 16.4375 12.75C16.9458 13.25 17.2 14 17.2 15C17.2 16.4833 16.6583 17.5208 15.575 18.1125C14.4917 18.7042 13.475 19 12.525 19H6.8ZM9.825 16.2H12.425C13.225 16.2 13.7125 15.9958 13.8875 15.5875C14.0625 15.1792 14.15 14.8833 14.15 14.7C14.15 14.5167 14.0625 14.2208 13.8875 13.8125C13.7125 13.4042 13.2 13.2 12.35 13.2H9.825V16.2ZM9.825 10.5H12.15C12.7 10.5 13.1 10.3583 13.35 10.075C13.6 9.79167 13.725 9.475 13.725 9.125C13.725 8.725 13.5833 8.4 13.3 8.15C13.0167 7.9 12.65 7.775 12.2 7.775H9.825V10.5Z") });
|
|
1110
|
-
var IconItalic = createIconBase({ paths: p("M5 19V16.5H9L12 7.5H8V5H18V7.5H14.5L11.5 16.5H15V19H5Z") });
|
|
1111
|
-
var IconDevices = createIconBase({ paths: p("M3 6H21V4H3C1.9 4 1 4.9 1 6V18C1 19.1 1.9 20 3 20H7V18H3V6M13 12H9V13.78C8.39 14.33 8 15.11 8 16C8 16.89 8.39 17.67 9 18.22V20H13V18.22C13.61 17.67 14 16.88 14 16S13.61 14.33 13 13.78V12M11 17.5C10.17 17.5 9.5 16.83 9.5 16S10.17 14.5 11 14.5 12.5 15.17 12.5 16 11.83 17.5 11 17.5M22 8H16C15.5 8 15 8.5 15 9V19C15 19.5 15.5 20 16 20H22C22.5 20 23 19.5 23 19V9C23 8.5 22.5 8 22 8M21 18H17V10H21V18Z") });
|
|
1112
|
-
var IconMacOS = createIconBase({ paths: p("M18.71,19.5C17.88,20.74 17,21.95 15.66,21.97C14.32,22 13.89,21.18 12.37,21.18C10.84,21.18 10.37,21.95 9.1,22C7.79,22.05 6.8,20.68 5.96,19.47C4.25,17 2.94,12.45 4.7,9.39C5.57,7.87 7.13,6.91 8.82,6.88C10.1,6.86 11.32,7.75 12.11,7.75C12.89,7.75 14.37,6.68 15.92,6.84C16.57,6.87 18.39,7.1 19.56,8.82C19.47,8.88 17.39,10.1 17.41,12.63C17.44,15.65 20.06,16.66 20.09,16.67C20.06,16.74 19.67,18.11 18.71,19.5M13,3.5C13.73,2.67 14.94,2.04 15.94,2C16.07,3.17 15.6,4.35 14.9,5.19C14.21,6.04 13.07,6.7 11.95,6.61C11.8,5.46 12.36,4.26 13,3.5Z") });
|
|
1113
|
-
var IconAppleIOS = createIconBase({ paths: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", d: "M2.09 16.8H3.75V9.76H2.09M2.92 8.84C3.44 8.84 3.84 8.44 3.84 7.94C3.84 7.44 3.44 7.04 2.92 7.04C2.4 7.04 2 7.44 2 7.94C2 8.44 2.4 8.84 2.92 8.84M9.25 7.06C6.46 7.06 4.7 8.96 4.7 12C4.7 15.06 6.46 16.96 9.25 16.96C12.04 16.96 13.8 15.06 13.8 12C13.8 8.96 12.04 7.06 9.25 7.06M9.25 8.5C10.96 8.5 12.05 9.87 12.05 12C12.05 14.15 10.96 15.5 9.25 15.5C7.54 15.5 6.46 14.15 6.46 12C6.46 9.87 7.54 8.5 9.25 8.5M14.5 14.11C14.57 15.87 16 16.96 18.22 16.96C20.54 16.96 22 15.82 22 14C22 12.57 21.18 11.77 19.23 11.32L18.13 11.07C16.95 10.79 16.47 10.42 16.47 9.78C16.47 9 17.2 8.45 18.28 8.45C19.38 8.45 20.13 9 20.21 9.89H21.84C21.8 8.2 20.41 7.06 18.29 7.06C16.21 7.06 14.73 8.21 14.73 9.91C14.73 11.28 15.56 12.13 17.33 12.53L18.57 12.82C19.78 13.11 20.27 13.5 20.27 14.2C20.27 15 19.47 15.57 18.31 15.57C17.15 15.57 16.26 15 16.16 14.11H14.5Z" }) });
|
|
1114
|
-
var IconWindows = createIconBase({ paths: p("M3,12V6.75L9,5.43V11.91L3,12M20,3V11.75L10,11.9V5.21L20,3M3,13L9,13.09V19.9L3,18.75V13M20,13.25V22L10,20.09V13.1L20,13.25Z") });
|
|
1115
|
-
var IconLinux = createIconBase({ paths: p("M14.62,8.35C14.2,8.63 12.87,9.39 12.67,9.54C12.28,9.85 11.92,9.83 11.53,9.53C11.33,9.37 10,8.61 9.58,8.34C9.1,8.03 9.13,7.64 9.66,7.42C11.3,6.73 12.94,6.78 14.57,7.45C15.06,7.66 15.08,8.05 14.62,8.35M21.84,15.63C20.91,13.54 19.64,11.64 18,9.97C17.47,9.42 17.14,8.8 16.94,8.09C16.84,7.76 16.77,7.42 16.7,7.08C16.5,6.2 16.41,5.3 16,4.47C15.27,2.89 14,2.07 12.16,2C10.35,2.05 9,2.81 8.21,4.4C8,4.83 7.85,5.28 7.75,5.74C7.58,6.5 7.43,7.29 7.25,8.06C7.1,8.71 6.8,9.27 6.29,9.77C4.68,11.34 3.39,13.14 2.41,15.12C2.27,15.41 2.13,15.7 2.04,16C1.85,16.66 2.33,17.12 3.03,16.96C3.47,16.87 3.91,16.78 4.33,16.65C4.74,16.5 4.9,16.6 5,17C5.65,19.15 7.07,20.66 9.24,21.5C13.36,23.06 18.17,20.84 19.21,16.92C19.28,16.65 19.38,16.55 19.68,16.65C20.14,16.79 20.61,16.89 21.08,17C21.57,17.09 21.93,16.84 22,16.36C22.03,16.1 21.94,15.87 21.84,15.63") });
|
|
1116
|
-
var IconAndroidOS = createIconBase({ paths: p("M16.61 15.15C16.15 15.15 15.77 14.78 15.77 14.32S16.15 13.5 16.61 13.5H16.61C17.07 13.5 17.45 13.86 17.45 14.32C17.45 14.78 17.07 15.15 16.61 15.15M7.41 15.15C6.95 15.15 6.57 14.78 6.57 14.32C6.57 13.86 6.95 13.5 7.41 13.5H7.41C7.87 13.5 8.24 13.86 8.24 14.32C8.24 14.78 7.87 15.15 7.41 15.15M16.91 10.14L18.58 7.26C18.67 7.09 18.61 6.88 18.45 6.79C18.28 6.69 18.07 6.75 18 6.92L16.29 9.83C14.95 9.22 13.5 8.9 12 8.91C10.47 8.91 9 9.24 7.73 9.82L6.04 6.91C5.95 6.74 5.74 6.68 5.57 6.78C5.4 6.87 5.35 7.08 5.44 7.25L7.1 10.13C4.25 11.69 2.29 14.58 2 18H22C21.72 14.59 19.77 11.7 16.91 10.14H16.91Z") });
|
|
1117
|
-
var IconLink = createIconBase({ paths: p("M7.90326 16.7536C6.93594 15.7863 6.93594 14.2137 7.90326 13.2464L10.166 10.9836L9.0912 9.90883L6.82846 12.1716C5.26717 13.7329 5.26717 16.2671 6.82846 17.8284C8.38975 19.3897 10.924 19.3897 12.4853 17.8284L14.7481 15.5657L13.6733 14.4909L11.4105 16.7536C10.4432 17.7209 8.87058 17.7209 7.90326 16.7536ZM10.7883 15L15.3137 10.4745L14.1824 9.34315L9.65688 13.8686L10.7883 15ZM12.4853 6.51472L10.2226 8.77746L11.2974 9.85226L13.5601 7.58952C14.5274 6.6222 16.1 6.6222 17.0674 7.58952C18.0347 8.55684 18.0347 10.1294 17.0674 11.0968L14.8046 13.3595L15.8794 14.4343L18.1422 12.1716C19.7035 10.6103 19.7035 8.07601 18.1422 6.51472C16.5809 4.95343 14.0466 4.95343 12.4853 6.51472Z") });
|
|
1118
|
-
var IconPreview = createIconBase({ paths: p("M19,3H5C3.89,3,3,3.9,3,5v14c0,1.1,0.89,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.11,3,19,3z M19,19H5V7h14V19z M12,10.5 c1.84,0,3.48,0.96,4.34,2.5c-0.86,1.54-2.5,2.5-4.34,2.5S8.52,14.54,7.66,13C8.52,11.46,10.16,10.5,12,10.5 M12,9 c-2.73,0-5.06,1.66-6,4c0.94,2.34,3.27,4,6,4s5.06-1.66,6-4C17.06,10.66,14.73,9,12,9L12,9z M12,14.5c-0.83,0-1.5-0.67-1.5-1.5 s0.67-1.5,1.5-1.5s1.5,0.67,1.5,1.5S12.83,14.5,12,14.5z") });
|
|
1119
|
-
var IconEyeHidden = createIconBase({ paths: p("M12 6.90455C15.1009 6.90455 17.8664 8.64727 19.2164 11.4045C18.7336 12.4027 18.0545 13.2618 17.2445 13.9573L18.3982 15.1109C19.5355 14.1045 20.4355 12.8445 21 11.4045C19.5845 7.81273 16.0909 5.26818 12 5.26818C10.9609 5.26818 9.96273 5.43182 9.02182 5.73455L10.3718 7.08454C10.9036 6.97818 11.4436 6.90455 12 6.90455ZM11.1245 7.83727L12.8182 9.53091C13.2845 9.73545 13.6609 10.1118 13.8655 10.5782L15.5591 12.2718C15.6245 11.9936 15.6736 11.6991 15.6736 11.3964C15.6818 9.36727 14.0291 7.72273 12 7.72273C11.6973 7.72273 11.4109 7.76364 11.1245 7.83727ZM3.82636 5.16182L6.01909 7.35455C4.68545 8.40182 3.63 9.79273 3 11.4045C4.41545 14.9964 7.90909 17.5409 12 17.5409C13.2436 17.5409 14.4382 17.3036 15.5345 16.87L18.3327 19.6682L19.4864 18.5145L4.98 4L3.82636 5.16182ZM9.96273 11.2982L12.0982 13.4336C12.0655 13.4418 12.0327 13.45 12 13.45C10.8709 13.45 9.95455 12.5336 9.95455 11.4045C9.95455 11.3636 9.96273 11.3391 9.96273 11.2982ZM7.18091 8.51636L8.61273 9.94818C8.42455 10.3982 8.31818 10.8891 8.31818 11.4045C8.31818 13.4336 9.97091 15.0864 12 15.0864C12.5155 15.0864 13.0064 14.98 13.4482 14.7918L14.25 15.5936C13.53 15.79 12.7773 15.9045 12 15.9045C8.89909 15.9045 6.13364 14.1618 4.78364 11.4045C5.35636 10.2345 6.19091 9.26909 7.18091 8.51636Z") });
|
|
1120
|
-
var IconFunnelHorizontal = createIconBase({ paths: p("M19 5L19 8L5 8L5 5L19 5ZM15 10.6L15 13.4L5 13.4L5 10.6L15 10.6ZM11 16.2L11 19L5 19L5 16.2L11 16.2Z") });
|
|
1121
|
-
var IconFunnelVertical = createIconBase({ paths: p("M5 5H8V19H5V5ZM10.6 9H13.4V19H10.6V9ZM16.2 13H19V19H16.2V13Z") });
|
|
1122
|
-
var IconFullScreen = createIconBase({ paths: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1123
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", d: "M5 14H3V20H10V18H5V14Z" }),
|
|
1124
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", d: "M10 6L10 4L3 4L3 10L5 10L5 6L10 6Z" }),
|
|
1125
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", d: "M19 14H21V20H14V18H19V14Z" }),
|
|
1126
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", d: "M14 6L14 4L21 4L21 10L19 10L19 6L14 6Z" })
|
|
1127
|
-
] }) });
|
|
1128
|
-
var IconPauseCircle = createIconBase({ paths: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1129
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", d: "M12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2ZM12 20C7.59 20 4 16.41 4 12C4 7.59 7.59 4 12 4C16.41 4 20 7.59 20 12C20 16.41 16.41 20 12 20Z" }),
|
|
1130
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", d: "M9.5 8h2v8h-2z" }),
|
|
1131
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", d: "M12.5 8h2v8h-2z" })
|
|
1132
|
-
] }) });
|
|
1133
|
-
var IconSkipBackward = createIconBase({ paths: p("M21.8636 13.6486C22.7745 8.20179 18.9753 3.03539 13.3613 2.08842C10.1083 1.5397 6.96075 2.53504 4.71122 4.52864L3.64727 3.39843C3.52963 3.27464 3.31814 3.33531 3.29323 3.49844L2.61914 7.61871C2.59751 7.7469 2.70624 7.86158 2.83872 7.85097L7.12768 7.57298C7.16635 7.57046 7.20339 7.55738 7.23454 7.53524C7.26569 7.5131 7.28969 7.48281 7.30378 7.44784C7.31787 7.41288 7.32148 7.37466 7.31418 7.33758C7.30689 7.3005 7.289 7.26607 7.26256 7.23825L6.10772 6.01158C6.35345 5.79443 6.6153 5.59014 6.89033 5.40074C7.75239 4.80488 8.72707 4.3786 9.7602 4.14561C10.831 3.90282 11.9307 3.87537 13.0286 4.06056C14.1265 4.24575 15.1564 4.63245 16.0883 5.21303C16.9896 5.77326 17.7628 6.48932 18.3877 7.34012C19.0126 8.19091 19.4575 9.13303 19.7082 10.1413C19.9684 11.1866 20.0076 12.2555 19.828 13.3205C19.6483 14.3854 19.2606 15.3823 18.6724 16.282C18.1048 17.1522 17.3755 17.8963 16.5061 18.495C15.6366 19.0938 14.6714 19.5166 13.6362 19.7502C12.5654 19.993 11.4657 20.0204 10.3678 19.8352C9.26987 19.65 8.23995 19.2633 7.30808 18.6827C6.40854 18.1237 5.62762 17.4013 5.00872 16.5557C4.8493 16.3386 4.70383 16.1163 4.56724 15.8879C4.54048 15.8423 4.49636 15.8085 4.44446 15.7941C4.39256 15.7796 4.3371 15.7856 4.29013 15.8108L2.84288 16.5656C2.74229 16.6196 2.70583 16.7427 2.76244 16.841C4.25318 19.3768 6.85284 21.2731 10.0347 21.8098C15.6538 22.7576 20.9514 19.1029 21.8636 13.6486Z") });
|
|
1134
|
-
var IconSkipStart = createIconBase({ paths: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1135
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", d: "M4 6h2v12H4z" }),
|
|
1136
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", d: "M9 12L17 6.5V17.5L9 12Z" })
|
|
1137
|
-
] }) });
|
|
1138
|
-
var IconSkipEnd = createIconBase({ paths: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1139
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", d: "M18 6h2v12h-2z" }),
|
|
1140
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "currentColor", d: "M15 12L7 6.5V17.5L15 12Z" })
|
|
1141
|
-
] }) });
|
|
1142
|
-
var IconDragHandle = createIconBase({ paths: p("m11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z") });
|
|
1143
|
-
var IconAdsClick = createIconBase({ paths: p("M11.71,17.99C8.53,17.84,6,15.22,6,12c0-3.31,2.69-6,6-6c3.22,0,5.84,2.53,5.99,5.71l-2.1-0.63C15.48,9.31,13.89,8,12,8 c-2.21,0-4,1.79-4,4c0,1.89,1.31,3.48,3.08,3.89L11.71,17.99z M22,12c0,0.3-0.01,0.6-0.04,0.9l-1.97-0.59C20,12.21,20,12.1,20,12 c0-4.42-3.58-8-8-8s-8,3.58-8,8s3.58,8,8,8c0.1,0,0.21,0,0.31-0.01l0.59,1.97C12.6,21.99,12.3,22,12,22C6.48,22,2,17.52,2,12 C2,6.48,6.48,2,12,2S22,6.48,22,12z M18.23,16.26L22,15l-10-3l3,10l1.26-3.77l4.27,4.27l1.98-1.98L18.23,16.26z") });
|
|
1144
|
-
var IconFingerprint = createIconBase({ viewBox: "1 1 23 23", paths: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", d: "M13.1427 20.9999C10.8077 19.5438 9.25254 16.9522 9.25254 13.9968C9.25254 12.4783 10.4833 11.2476 12.0008 11.2476C13.5184 11.2476 14.7491 12.4783 14.7491 13.9968C14.7491 15.5153 15.9798 16.746 17.4974 16.746C19.0149 16.746 20.2457 15.5153 20.2457 13.9968C20.2457 9.44139 16.5544 5.74922 12.0017 5.74922C7.44907 5.74922 3.75781 9.44139 3.75781 13.9968C3.75781 15.0122 3.87145 16.001 4.08038 16.954M8.49027 20.2989C7.23938 18.5138 6.50351 16.3419 6.50351 13.9968C6.50351 10.9599 8.96405 8.49844 11.9992 8.49844C15.0343 8.49844 17.4948 10.9599 17.4948 13.9968M17.7927 19.4806C17.6937 19.4861 17.5966 19.4953 17.4967 19.4953C14.4616 19.4953 12.0011 17.0338 12.0011 13.9969M19.6734 6.47682C17.7993 4.34802 15.0593 3 12.0004 3C8.94141 3 6.20138 4.34802 4.32734 6.47682" }) });
|
|
1145
|
-
var IconVerticalAlignCenter = createIconBase({ paths: p("M11.8214 24V17.0667L8.97143 19.8667L8.01091 18.923L12.5 14.5127L16.9891 18.923L16.0286 19.8667L13.1786 17.0667V24H11.8214ZM3 12.6667V11.3333H22V12.6667H3ZM12.5 9.48733L8.01091 5.077L8.97143 4.13333L11.8214 6.93333V0H13.1786V6.93333L16.0286 4.13333L16.9891 5.077L12.5 9.48733Z") });
|
|
1146
|
-
var IconGhost = createIconBase({ viewBox: "0 0 24 24", paths: p("M12 2C15.5 2 18 5 19 8C22 9 23 11.73 23 14L20.2253 14.7928C19.796 14.9154 19.5 15.3078 19.5 15.7543V17.25C19.5 18.2165 18.7165 19 17.75 19H17.1536C16.4825 19 15.8562 19.3366 15.4858 19.8962C14.5576 21.2987 13.3957 22 12 22C10.6043 22 9.44238 21.2987 8.5142 19.8962C8.14383 19.3366 7.51746 19 6.84636 19H6.25C5.2835 19 4.5 18.2165 4.5 17.25V15.7543C4.5 15.3078 4.20402 14.9154 3.77472 14.7928L1 14C1 11.7337 2 9 5 8C6 5 8.5 2 12 2ZM12 4C9.8906 4 7.93534 5.78788 6.98864 8.37148L6.89737 8.63246L6.58114 9.58114L5.63246 9.89737C4.37721 10.3158 3.56485 11.238 3.20834 12.4564L3.185 12.543L4.32416 12.8697C5.55353 13.221 6.41845 14.3095 6.49454 15.5727L6.5 15.7543V17H6.84636C8.1096 17 9.29359 17.5963 10.0461 18.5996L10.182 18.7925C10.7584 19.6634 11.3162 20 12 20C12.6382 20 13.1667 19.7068 13.7029 18.9596L13.818 18.7925C14.5151 17.739 15.6658 17.0807 16.9178 17.0069L17.1536 17H17.5V15.7543C17.5 14.4757 18.309 13.3451 19.5027 12.9249L19.6758 12.8697L20.815 12.543L20.7918 12.4555C20.4554 11.3047 19.7124 10.4193 18.5728 9.97176L18.3675 9.89737L17.4189 9.58114L17.1026 8.63246C16.1948 5.90906 14.1797 4 12 4ZM12 12C12.8284 12 13.5 13.1193 13.5 14.5C13.5 15.8807 12.8284 17 12 17C11.1716 17 10.5 15.8807 10.5 14.5C10.5 13.1193 11.1716 12 12 12ZM9.5 8C10.3284 8 11 8.67157 11 9.5C11 10.3284 10.3284 11 9.5 11C8.67157 11 8 10.3284 8 9.5C8 8.67157 8.67157 8 9.5 8ZM14.5 8C15.3284 8 16 8.67157 16 9.5C16 10.3284 15.3284 11 14.5 11C13.6716 11 13 10.3284 13 9.5C13 8.67157 13.6716 8 14.5 8Z") });
|
|
1147
|
-
|
|
1148
|
-
// src/components/icons/lemon-brand-icons.tsx
|
|
1149
|
-
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
1150
|
-
var p2 = (d) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { d, fill: "currentColor" });
|
|
1151
|
-
var IconGitlab = createIconBase({ paths: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
|
|
1152
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { fill: "#E24329", d: "M23.4841 9.51355L23.4507 9.42452L20.2169 0.621934C20.1511 0.449408 20.0346 0.303054 19.8841 0.20387C19.7336 0.106371 19.5579 0.0594128 19.3809 0.0693348C19.204 0.0792569 19.0342 0.145582 18.8945 0.259354C18.7563 0.376393 18.6561 0.534985 18.6074 0.713547L16.4239 7.68129H7.58229L5.39878 0.713547C5.35143 0.534012 5.251 0.374625 5.11178 0.258063C4.97208 0.144291 4.80228 0.0779663 4.62529 0.0680442C4.44831 0.0581222 4.27267 0.105081 4.12208 0.20258C3.97193 0.302164 3.85553 0.44839 3.7893 0.620644L0.5493 9.41935L0.517135 9.50839C0.0516127 10.777 -0.00584844 12.1692 0.353415 13.4748C0.712679 14.7805 1.46919 15.929 2.50889 16.7471L2.52002 16.7561L2.54971 16.7781L7.4759 20.6258L9.91301 22.5497L11.3975 23.7187C11.5712 23.8562 11.7832 23.9307 12.0013 23.9307C12.2193 23.9307 12.4313 23.8562 12.605 23.7187L14.0895 22.5497L16.5266 20.6258L21.4825 16.7548L21.4949 16.7445C22.5322 15.9263 23.287 14.779 23.6457 13.4751C24.0044 12.1711 23.9477 10.781 23.4841 9.51355V9.51355Z" }),
|
|
1153
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { fill: "#FC6D26", d: "M23.4841 9.51355L23.4507 9.42451C21.875 9.76186 20.3902 10.458 19.1023 11.4632L12 17.0645C14.4186 18.9729 16.5241 20.631 16.5241 20.631L21.48 16.76L21.4924 16.7497C22.5312 15.9315 23.2871 14.7834 23.6464 13.4784C24.0056 12.1734 23.9486 10.7819 23.4841 9.51355Z" }),
|
|
1154
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { fill: "#FCA326", d: "M7.47589 20.631L9.91301 22.5548L11.3975 23.7239C11.5712 23.8614 11.7832 23.9358 12.0013 23.9358C12.2193 23.9358 12.4313 23.8614 12.605 23.7239L14.0895 22.5548L16.5266 20.631C16.5266 20.631 14.4186 18.9677 12 17.0645C9.58146 18.9677 7.47589 20.631 7.47589 20.631Z" }),
|
|
1155
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { fill: "#FC6D26", d: "M4.89652 11.4632C3.60966 10.4559 2.12514 9.75798 0.5493 9.41936L0.517135 9.50839C0.0516127 10.777 -0.00584844 12.1692 0.353415 13.4748C0.712679 14.7805 1.46919 15.929 2.50889 16.7471L2.52002 16.7561L2.54971 16.7781L7.4759 20.6258C7.4759 20.6258 9.57899 18.9677 12 17.0594L4.89652 11.4632Z" })
|
|
1156
|
-
] }) });
|
|
1157
|
-
var IconGoogle = createIconBase({ paths: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
|
|
1158
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { fill: "#4285F4", d: "M23.52 12.2727C23.52 11.4218 23.4436 10.6036 23.3018 9.81818H12V14.4654H18.4582C18.1745 15.96 17.3236 17.2254 16.0473 18.0764V21.0982H19.9418C22.2109 19.0036 23.52 15.9273 23.52 12.2727V12.2727Z" }),
|
|
1159
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { fill: "#34A853", d: "M12 24C15.24 24 17.9564 22.9309 19.9418 21.0982L16.0473 18.0764C14.9782 18.7964 13.6145 19.2327 12 19.2327C8.87999 19.2327 6.22908 17.1273 5.27999 14.2909H1.28726V17.3891C3.26181 21.3055 7.30908 24 12 24Z" }),
|
|
1160
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { fill: "#FBBC05", d: "M5.28 14.28C5.04 13.56 4.89818 12.7964 4.89818 12C4.89818 11.2036 5.04 10.44 5.28 9.72001V6.62183H1.28727C0.469091 8.23637 0 10.0582 0 12C0 13.9418 0.469091 15.7636 1.28727 17.3782L4.39636 14.9564L5.28 14.28Z" }),
|
|
1161
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { fill: "#EA4335", d: "M12 4.77818C13.7673 4.77818 15.3382 5.38909 16.5927 6.56727L20.0291 3.13091C17.9454 1.18909 15.24 0 12 0C7.30908 0 3.26181 2.69455 1.28726 6.62182L5.27999 9.72C6.22908 6.88364 8.87999 4.77818 12 4.77818Z" })
|
|
1162
|
-
] }) });
|
|
1163
|
-
var IconSlack = createIconBase({ viewBox: "0 0 2447.6 2452.5", paths: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
|
|
1164
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { fill: "#36c5f0", fillRule: "evenodd", clipRule: "evenodd", d: "m897.4 0c-135.3.1-244.8 109.9-244.7 245.2-.1 135.3 109.5 245.1 244.8 245.2h244.8v-245.1c.1-135.3-109.5-245.1-244.9-245.3.1 0 .1 0 0 0m0 654h-652.6c-135.3.1-244.9 109.9-244.8 245.2-.2 135.3 109.4 245.1 244.7 245.3h652.7c135.3-.1 244.9-109.9 244.8-245.2.1-135.4-109.5-245.2-244.8-245.3z" }),
|
|
1165
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { fill: "#2eb67d", fillRule: "evenodd", clipRule: "evenodd", d: "m2447.6 899.2c.1-135.3-109.5-245.1-244.8-245.2-135.3.1-244.9 109.9-244.8 245.2v245.3h244.8c135.3-.1 244.9-109.9 244.8-245.3zm-652.7 0v-654c.1-135.2-109.4-245-244.7-245.2-135.3.1-244.9 109.9-244.8 245.2v654c-.2 135.3 109.4 245.1 244.7 245.3 135.3-.1 244.9-109.9 244.8-245.3z" }),
|
|
1166
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { fill: "#ecb22e", fillRule: "evenodd", clipRule: "evenodd", d: "m1550.1 2452.5c135.3-.1 244.9-109.9 244.8-245.2.1-135.3-109.5-245.1-244.8-245.2h-244.8v245.2c-.1 135.2 109.5 245 244.8 245.2zm0-654.1h652.7c135.3-.1 244.9-109.9 244.8-245.2.2-135.3-109.4-245.1-244.7-245.3h-652.7c-135.3.1-244.9 109.9-244.8 245.2-.1 135.4 109.4 245.2 244.7 245.3z" }),
|
|
1167
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { fill: "#e01e5a", fillRule: "evenodd", clipRule: "evenodd", d: "m0 1553.2c-.1 135.3 109.5 245.1 244.8 245.2 135.3-.1 244.9-109.9 244.8-245.2v-245.2h-244.8c-135.3.1-244.9 109.9-244.8 245.2zm652.7 0v654c-.2 135.3 109.4 245.1 244.7 245.3 135.3-.1 244.9-109.9 244.8-245.2v-653.9c.2-135.3-109.4-245.1-244.7-245.3-135.4 0-244.9 109.8-244.8 245.1 0 0 0 .1 0 0" })
|
|
1168
|
-
] }) });
|
|
1169
|
-
var IconSlackExternal = createIconBase({ viewBox: "-2 -2 24 24", paths: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
|
|
1170
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { fill: "none", stroke: "currentColor", strokeLinejoin: "round", strokeWidth: 1.5, d: "M13 4.75 18.25 10 13 15.25 7.75 10 13 4.75Z" }),
|
|
1171
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { fill: "none", stroke: "currentColor", strokeLinejoin: "round", strokeWidth: 1.5, d: "M8.01 5.76 7 4.75 1.75 10 7 15.25l1.01-1.01-2.872-3.037a1.75 1.75 0 0 1 0-2.406L8.01 5.76Z" })
|
|
1172
|
-
] }) });
|
|
1173
|
-
var IconMicrosoftTeams = createIconBase({ paths: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
|
|
1174
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { fill: "#5059C9", d: "M19.5 4.5h-3V3a1.5 1.5 0 0 0-1.5-1.5H9A1.5 1.5 0 0 0 7.5 3v1.5h-3A1.5 1.5 0 0 0 3 6v12a1.5 1.5 0 0 0 1.5 1.5h15A1.5 1.5 0 0 0 21 18V6a1.5 1.5 0 0 0-1.5-1.5zM9 3h6v1.5H9V3zm3 15a4.5 4.5 0 1 1 0-9 4.5 4.5 0 0 1 0 9z" }),
|
|
1175
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("circle", { cx: "12", cy: "13.5", r: "3", fill: "#7B83EB" })
|
|
1176
|
-
] }) });
|
|
1177
|
-
var IconChrome = createIconBase({ paths: p2("M12,20L15.46,14H15.45C15.79,13.4 16,12.73 16,12C16,10.8 15.46,9.73 14.62,9H19.41C19.79,9.93 20,10.94 20,12A8,8 0 0,1 12,20M4,12C4,10.54 4.39,9.18 5.07,8L8.54,14H8.55C9.24,15.19 10.5,16 12,16C12.45,16 12.88,15.91 13.29,15.77L10.89,19.91C7,19.37 4,16.04 4,12M15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9A3,3 0 0,1 15,12M12,4C14.96,4 17.54,5.61 18.92,8H12C10.06,8 8.45,9.38 8.08,11.21L5.7,7.08C7.16,5.21 9.44,4 12,4M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z") });
|
|
1178
|
-
var IconFirefox = createIconBase({ paths: p2("M9.27 7.94C9.27 7.94 9.27 7.94 9.27 7.94M6.85 6.74C6.86 6.74 6.86 6.74 6.85 6.74M21.28 8.6C20.85 7.55 19.96 6.42 19.27 6.06C19.83 7.17 20.16 8.28 20.29 9.1L20.29 9.12C19.16 6.3 17.24 5.16 15.67 2.68C15.59 2.56 15.5 2.43 15.43 2.3C15.39 2.23 15.36 2.16 15.32 2.09C15.26 1.96 15.2 1.83 15.17 1.69C15.17 1.68 15.16 1.67 15.15 1.67H15.13L15.12 1.67L15.12 1.67L15.12 1.67C12.9 2.97 11.97 5.26 11.74 6.71C11.05 6.75 10.37 6.92 9.75 7.22C9.63 7.27 9.58 7.41 9.62 7.53C9.67 7.67 9.83 7.74 9.96 7.68C10.5 7.42 11.1 7.27 11.7 7.23L11.75 7.23C11.83 7.22 11.92 7.22 12 7.22C12.5 7.21 12.97 7.28 13.44 7.42L13.5 7.44C13.6 7.46 13.67 7.5 13.75 7.5C13.8 7.54 13.86 7.56 13.91 7.58L14.05 7.64C14.12 7.67 14.19 7.7 14.25 7.73C14.28 7.75 14.31 7.76 14.34 7.78C14.41 7.82 14.5 7.85 14.54 7.89C14.58 7.91 14.62 7.94 14.66 7.96C15.39 8.41 16 9.03 16.41 9.77C15.88 9.4 14.92 9.03 14 9.19C17.6 11 16.63 17.19 11.64 16.95C11.2 16.94 10.76 16.85 10.34 16.7C10.24 16.67 10.14 16.63 10.05 16.58C10 16.56 9.93 16.53 9.88 16.5C8.65 15.87 7.64 14.68 7.5 13.23C7.5 13.23 8 11.5 10.83 11.5C11.14 11.5 12 10.64 12.03 10.4C12.03 10.31 10.29 9.62 9.61 8.95C9.24 8.59 9.07 8.42 8.92 8.29C8.84 8.22 8.75 8.16 8.66 8.1C8.43 7.3 8.42 6.45 8.63 5.65C7.6 6.12 6.8 6.86 6.22 7.5H6.22C5.82 7 5.85 5.35 5.87 5C5.86 5 5.57 5.16 5.54 5.18C5.19 5.43 4.86 5.71 4.56 6C4.21 6.37 3.9 6.74 3.62 7.14C3 8.05 2.5 9.09 2.28 10.18C2.28 10.19 2.18 10.59 2.11 11.1L2.08 11.33C2.06 11.5 2.04 11.65 2 11.91L2 11.94L2 12.27L2 12.32C2 17.85 6.5 22.33 12 22.33C16.97 22.33 21.08 18.74 21.88 14C21.9 13.89 21.91 13.76 21.93 13.63C22.13 11.91 21.91 10.11 21.28 8.6Z") });
|
|
1179
|
-
var IconSafari = createIconBase({ paths: p2("M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12C4,14.09 4.8,16 6.11,17.41L9.88,9.88L17.41,6.11C16,4.8 14.09,4 12,4M12,20A8,8 0 0,0 20,12C20,9.91 19.2,8 17.89,6.59L14.12,14.12L6.59,17.89C8,19.2 9.91,20 12,20M12,12L11.23,11.23L9.7,14.3L12.77,12.77L12,12M12,17.5H13V19H12V17.5M15.88,15.89L16.59,15.18L17.65,16.24L16.94,16.95L15.88,15.89M17.5,12V11H19V12H17.5M12,6.5H11V5H12V6.5M8.12,8.11L7.41,8.82L6.35,7.76L7.06,7.05L8.12,8.11M6.5,12V13H5V12H6.5Z") });
|
|
1180
|
-
var IconFacebook = createIconBase({ viewBox: "0 0 24 24", paths: p2("M17 3.5a.5.5 0 00-.5-.5H14a4.77 4.77 0 00-5 4.5v2.7H6.5a.5.5 0 00-.5.5v2.6a.5.5 0 00.5.5H9v6.7a.5.5 0 00.5.5h3a.5.5 0 00.5-.5v-6.7h2.62a.5.5 0 00.49-.37l.72-2.6a.5.5 0 00-.48-.63H13V7.5a1 1 0 011-.9h2.5a.5.5 0 00.5-.5V3.5z") });
|
|
1181
|
-
var Icon123 = createIconBase({ paths: p2("M7,15H5.5v-4.5H4V9h3V15z M13.5,13.5h-3v-1h2c0.55,0,1-0.45,1-1V10c0-0.55-0.45-1-1-1H9v1.5h3v1h-2c-0.55,0-1,0.45-1,1V15 h4.5V13.5z M19.5,14v-4c0-0.55-0.45-1-1-1H15v1.5h3v1h-2v1h2v1h-3V15h3.5C19.05,15,19.5,14.55,19.5,14z") });
|
|
1182
|
-
var IconNodeJS = createIconBase({ viewBox: "0 0 256 282", paths: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
|
|
1183
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { fill: "currentColor", d: "M116.504 3.58c6.962-3.985 16.03-4.003 22.986 0 34.995 19.774 70.001 39.517 104.99 59.303 6.581 3.707 10.983 11.031 10.916 18.614v118.968c.049 7.897-4.788 15.396-11.731 19.019-34.88 19.665-69.742 39.354-104.616 59.019-7.106 4.063-16.356 3.75-23.24-.646-10.457-6.062-20.932-12.094-31.39-18.15-2.137-1.274-4.546-2.288-6.055-4.36 1.334-1.798 3.719-2.022 5.657-2.807 4.365-1.388 8.374-3.616 12.384-5.778 1.014-.694 2.252-.428 3.224.193 8.942 5.127 17.805 10.403 26.777 15.481 1.914 1.105 3.852-.362 5.488-1.274 34.228-19.345 68.498-38.617 102.72-57.968 1.268-.61 1.969-1.956 1.866-3.345.024-39.245.006-78.497.012-117.742.145-1.576-.767-3.025-2.192-3.67-34.759-19.575-69.5-39.18-104.253-58.76a3.621 3.621 0 0 0-4.094-.006C91.2 39.257 56.465 58.88 21.712 78.454c-1.42.646-2.373 2.071-2.204 3.653.006 39.245 0 78.497 0 117.748a3.329 3.329 0 0 0 1.89 3.303c9.274 5.259 18.56 10.481 27.84 15.722 5.228 2.814 11.647 4.486 17.407 2.33 5.083-1.823 8.646-7.01 8.549-12.407.048-39.016-.024-78.038.036-117.048-.127-1.732 1.516-3.163 3.2-3 4.456-.03 8.918-.06 13.374.012 1.86-.042 3.14 1.823 2.91 3.568-.018 39.263.048 78.527-.03 117.79.012 10.464-4.287 21.85-13.966 26.97-11.924 6.177-26.662 4.867-38.442-1.056-10.198-5.09-19.93-11.097-29.947-16.55C5.368 215.886.555 208.357.604 200.466V81.497c-.073-7.74 4.504-15.197 11.29-18.85C46.768 42.966 81.636 23.27 116.504 3.58z" }),
|
|
1184
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { fill: "currentColor", d: "M146.928 85.99c15.21-.979 31.493-.58 45.18 6.913 10.597 5.742 16.472 17.793 16.659 29.566-.296 1.588-1.956 2.464-3.472 2.355-4.413-.006-8.827.06-13.24-.03-1.872.072-2.96-1.654-3.195-3.309-1.268-5.633-4.34-11.212-9.642-13.929-8.139-4.075-17.576-3.87-26.451-3.785-6.479.344-13.446.905-18.935 4.715-4.214 2.886-5.494 8.712-3.99 13.404 1.418 3.369 5.307 4.456 8.489 5.458 18.33 4.794 37.754 4.317 55.734 10.626 7.444 2.572 14.726 7.572 17.274 15.366 3.333 10.446 1.872 22.932-5.56 31.318-6.027 6.901-14.805 10.657-23.56 12.697-11.647 2.597-23.734 2.663-35.562 1.51-11.122-1.268-22.696-4.19-31.282-11.768-7.342-6.375-10.928-16.308-10.572-25.895.085-1.619 1.697-2.748 3.248-2.615 4.444-.036 8.888-.048 13.332.006 1.775-.127 3.091 1.407 3.182 3.08.82 5.367 2.837 11 7.517 14.182 9.032 5.827 20.365 5.428 30.707 5.591 8.568-.38 18.186-.495 25.178-6.158 3.689-3.23 4.782-8.634 3.785-13.283-1.08-3.925-5.186-5.754-8.712-6.95-18.095-5.724-37.736-3.647-55.656-10.12-7.275-2.571-14.31-7.432-17.105-14.906-3.9-10.578-2.113-23.662 6.098-31.765 8.006-8.06 19.563-11.164 30.551-12.275z" })
|
|
1185
|
-
] }) });
|
|
1186
|
-
var IconStamphog = createIconBase({ paths: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
|
|
1187
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { fill: "none", stroke: "currentColor", strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round", d: "M13.5 7.7 V7.5 A2.5 2.5 0 0 0 11 5 H5.5 A2.5 2.5 0 0 0 3 7.5 V11.5 A2.5 2.5 0 0 0 5.5 14 H8.39" }),
|
|
1188
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { fill: "none", stroke: "currentColor", strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round", d: "M8.25 5V3.6" }),
|
|
1189
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { fill: "none", stroke: "currentColor", strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round", d: "M6.1 8.4v1.5" }),
|
|
1190
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { fill: "none", stroke: "currentColor", strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round", d: "M9.9 8.4v1.5" }),
|
|
1191
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("circle", { cx: "8.25", cy: "2.55", r: "1.05", fill: "currentColor" }),
|
|
1192
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { fill: "none", stroke: "currentColor", strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round", d: "M13 14.9l1.9 1.9 3.6-4.2" })
|
|
1193
|
-
] }) });
|
|
1194
|
-
|
|
1195
|
-
// src/components/icons/lemon-category-icons.tsx
|
|
1196
|
-
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
1197
|
-
var p3 = (d) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("path", { d, fill: "currentColor" });
|
|
1198
|
-
var IconPalette = createIconBase({ paths: p3("M12,2C6.49,2,2,6.49,2,12s4.49,10,10,10c1.38,0,2.5-1.12,2.5-2.5c0-0.61-0.23-1.2-0.64-1.67c-0.08-0.1-0.13-0.21-0.13-0.33c0-0.28,0.22-0.5,0.5-0.5H16c3.31,0,6-2.69,6-6C22,6.04,17.51,2,12,2z M17.5,9.5c-0.83,0-1.5-0.67-1.5-1.5s0.67-1.5,1.5-1.5S19,7.17,19,8S18.33,9.5,17.5,9.5z M14.5,7.5C13.67,7.5,13,6.83,13,6s0.67-1.5,1.5-1.5S16,5.17,16,6S15.33,7.5,14.5,7.5z M9.5,7.5C8.67,7.5,8,6.83,8,6s0.67-1.5,1.5-1.5S11,5.17,11,6S10.33,7.5,9.5,7.5z M6.5,9.5C5.67,9.5,5,8.83,5,8s0.67-1.5,1.5-1.5S8,7.17,8,8S7.33,9.5,6.5,9.5z") });
|
|
1199
|
-
var IconMegaphone = createIconBase({ paths: p3("M20,2V4L4,8V6H2V18H4V16L6.56,16.44C6.19,16.83,6,17.38,6,18C6,19.66,7.34,21,9,21C10.28,21,11.37,20.21,11.8,19H13V16H11.8C11.37,14.79,10.28,14,9,14C8.39,14,7.84,14.19,7.44,14.56L4,13.47V11.18L20,6.18V2M9,16C9.55,16,10,16.45,10,17C10,17.55,9.55,18,9,18C8.45,18,8,17.55,8,17C8,16.45,8.45,16,9,16M20,4.18L4,9.18V11.18L20,6.18V4.18Z") });
|
|
1200
|
-
var IconMap = createIconBase({ paths: p3("M15,19L9,16.89L5,18.05V5.38L10.12,4.12L15,7.44L20.12,6.12V17.45L15,19M10.12,5.38V15.12L15,17.46V7.44L10.12,5.38Z") });
|
|
1201
|
-
var IconMapPin = createIconBase({ paths: p3("M12,2C8.13,2,5,5.13,5,9c0,5.25,7,13,7,13s7-7.75,7-13C19,5.13,15.87,2,12,2z M12,11.5c-1.38,0-2.5-1.12-2.5-2.5s1.12-2.5,2.5-2.5s2.5,1.12,2.5,2.5S13.38,11.5,12,11.5z") });
|
|
1202
|
-
var IconCoffee = createIconBase({ paths: p3("M2,21V19H20V21H2M20,8V5H18V8H20M20,3C21.1,3,22,3.9,22,5V8C22,9.1,21.1,10,20,10H18V13C18,15.21,16.21,17,14,17H8C5.79,17,4,15.21,4,13V3H20M16,5H6V8H16V5Z") });
|
|
1203
|
-
var IconBook = createIconBase({ paths: p3("M18,2H6C4.9,2,4,2.9,4,4V20c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2V4C20,2.9,19.1,2,18,2z M6,4h5v8l-2.5-1.5L6,12V4z") });
|
|
1204
|
-
var IconCalendar = createIconBase({ paths: p3("M9,10H7v2h2V10z M13,10h-2v2h2V10z M17,10h-2v2h2V10z M19,3h-1V1h-2v2H8V1H6v2H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M19,19H5V8h14V19z") });
|
|
1205
|
-
var IconClock = createIconBase({ paths: p3("M11.99,2C6.47,2,2,6.48,2,12s4.47,10,9.99,10C17.52,22,22,17.52,22,12S17.52,2,11.99,2z M12,20c-4.42,0-8-3.58-8-8s3.58-8,8-8s8,3.58,8,8S16.42,20,12,20z M12.5,7H11v6l5.25,3.15l0.75-1.23l-4.5-2.67V7z") });
|
|
1206
|
-
var IconGlobe = createIconBase({ paths: p3("M12,2C6.48,2,2,6.48,2,12s4.48,10,10,10s10-4.48,10-10S17.52,2,12,2z M11,19.93c-3.95-0.49-7-3.85-7-7.93c0-0.62,0.08-1.21,0.21-1.79L9,15v1c0,1.1,0.9,2,2,2V19.93z M17.9,17.39c-0.26-0.81-1-1.39-1.9-1.39h-1v-3c0-0.55-0.45-1-1-1H8v-2h2c0.55,0,1-0.45,1-1V7h2c1.1,0,2-0.9,2-2v-0.41C17.92,5.77,20,8.65,20,12C20,14.08,19.2,15.97,17.9,17.39z") });
|
|
1207
|
-
var IconCloud = createIconBase({ paths: p3("M19.35,10.04C18.67,6.59,15.64,4,12,4C9.11,4,6.6,5.64,5.35,8.04C2.34,8.36,0,10.91,0,14c0,3.31,2.69,6,6,6h13c2.76,0,5-2.24,5-5C24,12.36,21.95,10.29,19.35,10.04z") });
|
|
1208
|
-
var IconBug = createIconBase({ paths: p3("M20,8h-2.81c-0.45-0.78-1.07-1.45-1.82-1.96L17,4.41L15.59,3l-2.17,2.17C12.96,5.06,12.49,5,12,5S11.04,5.06,10.59,5.17L8.41,3L7,4.41l1.62,1.63C7.88,6.55,7.26,7.22,6.81,8H4v2h2.09c-0.05,0.33-0.09,0.66-0.09,1v1H4v2h2v1c0,0.34,0.04,0.67,0.09,1H4v2h2.81C7.85,19.79,9.78,21,12,21s4.15-1.21,5.19-3H20v-2h-2.09c0.05-0.33,0.09-0.66,0.09-1v-1h2v-2h-2v-1c0-0.34-0.04-0.67-0.09-1H20V8z M14,16h-4v-2h4V16z M14,12h-4v-2h4V12z") });
|
|
1209
|
-
var IconCrown = createIconBase({ paths: p3("M12,2L15,7H9L12,2z M17,7L14,2l3,5z M7,7L10,2L7,7z M5,20l2-8h10l2,8H5z") });
|
|
1210
|
-
var IconConfetti = createIconBase({ paths: p3("M14.5,2C13.67,2,13,2.67,13,3.5S13.67,5,14.5,5S16,4.33,16,3.5S15.33,2,14.5,2z M6.5,5C5.67,5,5,5.67,5,6.5S5.67,8,6.5,8S8,7.33,8,6.5S7.33,5,6.5,5z M3,12c0-0.83,0.67-1.5,1.5-1.5S6,11.17,6,12c0,0.83-0.67,1.5-1.5,1.5S3,12.83,3,12z M9.5,8C8.67,8,8,8.67,8,9.5S8.67,11,9.5,11S11,10.33,11,9.5S10.33,8,9.5,8z M7,15c-1.66,0-3,1.34-3,3s1.34,3,3,3s3-1.34,3-3S8.66,15,7,15z M18,13c-1.66,0-3,1.34-3,3s1.34,3,3,3s3-1.34,3-3S19.66,13,18,13z M15,7c-1.66,0-3,1.34-3,3s1.34,3,3,3s3-1.34,3-3S16.66,7,15,7z") });
|
|
1211
|
-
var IconLightBulb = createIconBase({ paths: p3("M9,21c0,0.55,0.45,1,1,1h4c0.55,0,1-0.45,1-1v-1H9V21z M12,2C8.14,2,5,5.14,5,9c0,2.38,1.19,4.47,3,5.74V17c0,0.55,0.45,1,1,1h6c0.55,0,1-0.45,1-1v-2.26c1.81-1.27,3-3.36,3-5.74C19,5.14,15.86,2,12,2z M14,14h-4v-2h4V14z") });
|
|
1212
|
-
var IconHourglass = createIconBase({ paths: p3("M6,2H18V6H6V2z M6,18H18v4H6V18z M16.5,12c0-1.47-0.91-2.84-2.3-3.5L14,8.5V6h-4v2.5l-0.2,0.1C7.91,9.16,7,10.53,7,12s0.91,2.84,2.3,3.5L10,15.5V18h4v-2.5l0.2-0.1C15.59,14.84,16.5,13.47,16.5,12z") });
|
|
1213
|
-
var IconStore = createIconBase({ paths: p3("M20,4H4V2H20V4z M21,9H3l-1,4h0.44l1.22,5H19.34l1.22-5H22L21,9z M6,16c-1.1,0-2-0.9-2-2h4C8,15.1,7.1,16,6,16z M18,16c-1.1,0-2-0.9-2-2h4C20,15.1,19.1,16,18,16z") });
|
|
1214
|
-
var IconCart = createIconBase({ paths: p3("M7,18c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S8.1,18,7,18z M1,2v2h2l3.6,7.59L5.25,14H19v-2H7.42l0.94-2H17l3-6H5.21L4.27,2H1z M17,18c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S18.1,18,17,18z") });
|
|
1215
|
-
var IconEye = createIconBase({ paths: p3("M12,4.5C7,4.5,2.73,7.61,1,12c1.73,4.39,6,7.5,11,7.5s9.27-3.11,11-7.5C21.27,7.61,17,4.5,12,4.5z M12,17c-2.76,0-5-2.24-5-5s2.24-5,5-5s5,2.24,5,5S14.76,17,12,17z M12,9c-1.66,0-3,1.34-3,3s1.34,3,3,3s3-1.34,3-3S13.66,9,12,9z") });
|
|
1216
|
-
var IconPeople = createIconBase({ paths: p3("M16,11c1.66,0,2.99-1.34,2.99-3S17.66,5,16,5c-1.66,0-3,1.34-3,3S14.34,11,16,11z M8,11c1.66,0,2.99-1.34,2.99-3S9.66,5,8,5C6.34,5,5,6.34,5,8S6.34,11,8,11z M8,13c-2.33,0-7,1.17-7,3.5V19h14v-2.5C15,14.17,10.33,13,8,13z M16,13c-0.29,0-0.62,0.02-0.97,0.05c1.16,0.84,1.97,1.97,1.97,3.45V19h6v-2.5C23,14.17,18.33,13,16,13z") });
|
|
1217
|
-
var IconGroups = createIconBase({ paths: p3("M12,12.75c1.63,0,3.07,0.39,4.24,0.9c1.08,0.48,1.76,1.56,1.76,2.73V18H6v-1.61c0-1.18,0.68-2.26,1.76-2.73C8.93,13.14,10.37,12.75,12,12.75z M4,13c1.1,0,2-0.9,2-2s-0.9-2-2-2s-2,0.9-2,2S2.9,13,4,13z M5.13,14.1C4.76,14.04,4.39,14,4,14c-0.99,0-1.93,0.21-2.78,0.58C0.48,14.9,0,15.62,0,16.43V18h4.5v-1.61C4.5,15.56,4.73,14.78,5.13,14.1z M20,13c1.1,0,2-0.9,2-2s-0.9-2-2-2s-2,0.9-2,2S18.9,13,20,13z M24,16.43c0-0.81-0.48-1.53-1.22-1.85C21.93,14.21,20.99,14,20,14c-0.39,0-0.76,0.04-1.13,0.1c0.4,0.68,0.63,1.46,0.63,2.29V18H24V16.43z M12,6c1.66,0,3,1.34,3,3s-1.34,3-3,3s-3-1.34-3-3S10.34,6,12,6z") });
|
|
1218
|
-
var IconDocument = createIconBase({ paths: p3("M14,2H6C4.9,2,4,2.9,4,4v16c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2V8L14,2z M6,20V4h7v5h5v11H6z") });
|
|
1219
|
-
var IconAI = createIconBase({ paths: p3("M21 11c0 4.97-4.03 9-9 9s-9-4.03-9-9s4.03-9 9-9s9 4.03 9 9z M12 7v4l3 2M9 13h6M9 16h6M12 4v2M12 18v2M6.5 6.5l1 1M16.5 16.5l1 1M4 12h2M18 12h2M6.5 17.5l1-1M16.5 7.5l1-1") });
|
|
1220
|
-
var IconArchive = createIconBase({ paths: p3("M21,3H3v6h1.73L5,20h14l1.27-11H21V3z M19,4v2H5V4H19z M17.17,10l-0.91,8H7.74l-0.91-8H17.17z M10,12h4v2h-4V12z") });
|
|
1221
|
-
var IconAtSign = createIconBase({ paths: p3("M12,2C6.48,2,2,6.48,2,12s4.48,10,10,10h5v-2h-5c-4.34,0-8-3.66-8-8s3.66-8,8-8s8,3.66,8,8v1.43c0,0.79-0.71,1.57-1.5,1.57s-1.5-0.78-1.5-1.57V12c0-2.76-2.24-5-5-5s-5,2.24-5,5s2.24,5,5,5c1.38,0,2.64-0.56,3.54-1.47c0.65,0.89,1.77,1.47,2.96,1.47c1.97,0,3.5-1.6,3.5-3.57V12C22,6.48,17.52,2,12,2z M12,15c-1.66,0-3-1.34-3-3s1.34-3,3-3s3,1.34,3,3S13.66,15,12,15z") });
|
|
1222
|
-
var IconBadge = createIconBase({ paths: p3("M12,2L15,7H9L12,2z M17,7L14,2l3,5z M7,7L10,2L7,7z M5,20l2-8h10l2,8H5z") });
|
|
1223
|
-
var IconBinary = createIconBase({ paths: p3("M8,4h4v16H8V4z M12,4h1v16h-1V4z M3,8h1v12H3V8z M20,8h1v12h-1V8z M6,4h2v2H6V4z M16,4h2v2h-2V4z M4,4h2v2H4V4z M18,4h2v2h-2V4z") });
|
|
1224
|
-
var IconGear = createIconBase({ paths: p3("M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z") });
|
|
1225
|
-
var IconCalendarDay = createIconBase({ paths: p3("M19,3h-1V1h-2v2H8V1H6v2H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M19,19H5V8h14V19z M7,10h5v5H7V10z") });
|
|
1226
|
-
var IconChat = createIconBase({ paths: p3("M20,2H4C2.9,2,2,2.9,2,4v18l4-4h14c1.1,0,2-0.9,2-2V4C22,2.9,21.1,2,20,2z M6,9h12v2H6V9z M10,13h8v2h-8V13z M6,5h12v2H6V5z") });
|
|
1227
|
-
var IconCheckboxChecked = createIconBase({ paths: p3("M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M19,19H5V5h14V19z M17.99,9l-1.41-1.42L10,14.17l-2.59-2.58L6,13l4,4L17.99,9z") });
|
|
1228
|
-
var IconDownloadCloud = createIconBase({ paths: p3("M19.35,10.04C18.67,6.59,15.64,4,12,4C9.11,4,6.6,5.64,5.35,8.04C2.34,8.36,0,10.91,0,14c0,3.31,2.69,6,6,6h13c2.76,0,5-2.24,5-5C24,12.36,21.95,10.29,19.35,10.04z M17,13l-5,5l-5-5h3V9h4v4H17z") });
|
|
1229
|
-
var IconExternalLink = createIconBase({ paths: p3("M19,19H5V5h7V3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2v-7h-2V19z M14,3v2h3.59l-9.83,9.83l1.41,1.41L19,6.41V10h2V3H14z") });
|
|
1230
|
-
var IconFile = createIconBase({ paths: p3("M14,2H6C4.9,2,4,2.9,4,4v16c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2V8L14,2z M6,20V4h7v5h5v11H6z") });
|
|
1231
|
-
var IconFilter = createIconBase({ paths: p3("M10,18h4v-2h-4V18z M3,6v2h18V6H3z M6,13h12v-2H6V13z") });
|
|
1232
|
-
var IconFolder = createIconBase({ paths: p3("M10,4H4C2.9,4,2,4.9,2,6v12c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V8c0-1.1-0.9-2-2-2h-8L10,4z") });
|
|
1233
|
-
var IconForward = createIconBase({ paths: p3("M12,8V4l8,8l-8,8v-4H4V8H12z") });
|
|
1234
|
-
var IconHash = createIconBase({ paths: p3("M19.21,12.26l-0.45,1.74h-4.47l-0.89,3.74H11.9l0.89-3.74H8.21L7.32,17.74H5.42l0.89-3.74H2v-1.74h4.76L7.65,10.5H3.5V8.76h4.59l0.89-3.74h1.91L10,8.76h4.47l0.89-3.74h1.91L16.38,8.76H20v1.74h-4.06l-0.45,1.76H20v1.74H19.21z M15.09,10.5l-0.45,1.74h-4.47l0.45-1.74H15.09z") });
|
|
1235
|
-
var IconHeadphones = createIconBase({ paths: p3("M12,2C7.03,2,3,6.03,3,11v4c0,1.1,0.9,2,2,2h2v-6H5v-1c0-3.87,3.13-7,7-7s7,3.13,7,7v1h-2v6h2c1.1,0,2-0.9,2-2v-4C21,6.03,16.97,2,12,2z") });
|
|
1236
|
-
var IconHeart = createIconBase({ paths: p3("M12,21.35l-1.45-1.32C5.4,15.36,2,12.28,2,8.5C2,5.42,4.42,3,7.5,3c1.74,0,3.41,0.81,4.5,2.09C13.09,3.81,14.76,3,16.5,3C19.58,3,22,5.42,22,8.5c0,3.78-3.4,6.86-8.55,11.54L12,21.35z") });
|
|
1237
|
-
var IconHomeFilled = createIconBase({ paths: p3("M10,20v-6h4v6h5v-8h3L12,3L2,12h3v8H10z") });
|
|
1238
|
-
var IconImage = createIconBase({ paths: p3("M21,19V5c0-1.1-0.9-2-2-2H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14C20.1,21,21,20.1,21,19z M8.5,13.5l2.5,3.01L14.5,12l4.5,6H5L8.5,13.5z") });
|
|
1239
|
-
var IconInbox = createIconBase({ paths: p3("M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M19,15h-4c0,1.66-1.34,3-3,3s-3-1.34-3-3H5V5h14V15z") });
|
|
1240
|
-
var IconInfoFilled = createIconBase({ paths: p3("M12,2C6.48,2,2,6.48,2,12s4.48,10,10,10s10-4.48,10-10S17.52,2,12,2z M13,17h-2v-6h2V17z M13,9h-2V7h2V9z") });
|
|
1241
|
-
var IconKeyFilled = createIconBase({ paths: p3("M12.65,10C11.83,7.67,9.61,6,7,6c-3.31,0-6,2.69-6,6s2.69,6,6,6c2.61,0,4.83-1.67,5.65-4H17v4h4v-4h2v-4H12.65z M7,14c-1.1,0-2-0.9-2-2s0.9-2,2-2s2,0.9,2,2S8.1,14,7,14z") });
|
|
1242
|
-
var IconLaptop = createIconBase({ paths: p3("M20,18c1.1,0,2-0.9,2-2V6c0-1.1-0.9-2-2-2H4C2.9,4,2,4.9,2,6v10c0,1.1,0.9,2,2,2H0v2h24v-2H20z M4,6h16v10H4V6z") });
|
|
1243
|
-
var IconLayout = createIconBase({ paths: p3("M21,3H3C1.9,3,1,3.9,1,5v14c0,1.1,0.9,2,2,2h18c1.1,0,2-0.9,2-2V5C23,3.9,22.1,3,21,3z M8,5v14H3V5H8z M10,5h11v14H10V5z") });
|
|
1244
|
-
var IconLifeBuoy = createIconBase({ paths: p3("M12,2C6.48,2,2,6.48,2,12s4.48,10,10,10s10-4.48,10-10S17.52,2,12,2z M12,15c-1.66,0-3-1.34-3-3s1.34-3,3-3s3,1.34,3,3S13.66,15,12,15z M19.93,11h-2.14c-0.16-1.06-0.6-2.02-1.24-2.82l1.52-1.52C18.69,7.94,19.65,9.38,19.93,11z M7.45,8.18l1.52,1.52C8.34,10.49,7.9,11.45,7.74,12.5H5.57C5.86,10.84,6.5,9.41,7.45,8.18z M5.07,13h2.14c0.16,1.06,0.6,2.02,1.24,2.82l-1.52,1.52C5.31,16.06,4.35,14.62,4.07,13z M16.55,17.82l-1.52-1.52c0.64-0.8,1.08-1.76,1.24-2.82h2.14C18.14,15.16,17.5,16.59,16.55,17.82z") });
|
|
1245
|
-
var IconLinkBreak = createIconBase({ paths: p3("M17,7h-4v2h4c1.65,0,3,1.35,3,3s-1.35,3-3,3h-4v2h4c2.76,0,5-2.24,5-5S19.76,7,17,7z M11,15H7c-1.65,0-3-1.35-3-3s1.35-3,3-3h4V7H7c-2.76,0-5,2.24-5,5s2.24,5,5,5h4V15z M14,11H6v2h8V11z") });
|
|
1246
|
-
var IconLocation = createIconBase({ paths: p3("M12,2C8.13,2,5,5.13,5,9c0,5.25,7,13,7,13s7-7.75,7-13C19,5.13,15.87,2,12,2z M12,11.5c-1.38,0-2.5-1.12-2.5-2.5s1.12-2.5,2.5-2.5s2.5,1.12,2.5,2.5S13.38,11.5,12,11.5z") });
|
|
1247
|
-
var IconLock = createIconBase({ paths: p3("M18,8h-1V6c0-2.76-2.24-5-5-5S7,3.24,7,6v2H6c-1.1,0-2,0.9-2,2v10c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2V10C20,8.9,19.1,8,18,8z M12,17c-1.1,0-2-0.9-2-2s0.9-2,2-2s2,0.9,2,2S13.1,17,12,17z M15.1,8H8.9V6c0-1.71,1.39-3.1,3.1-3.1s3.1,1.39,3.1,3.1V8z") });
|
|
1248
|
-
var IconMaximize = createIconBase({ paths: p3("M3,3h8v2H5v6H3V3z M13,3h8v8h-2V5h-6V3z M3,13h2v6h6v2H3V13z M19,13v6h-6v2h8v-8H19z") });
|
|
1249
|
-
var IconMic = createIconBase({ paths: p3("M12,14c1.66,0,3-1.34,3-3V5c0-1.66-1.34-3-3-3S9,3.34,9,5v6C9,12.66,10.34,14,12,14z M17,11c0,2.76-2.24,5-5,5s-5-2.24-5-5H5c0,3.53,2.61,6.43,6,6.92V21h2v-3.08c3.39-0.49,6-3.39,6-6.92H17z") });
|
|
1250
|
-
var IconMinimize = createIconBase({ paths: p3("M6,19h5v-2H7v-4H5v5C5,18.1,5.9,19,6,19z M19,5h-5v2h4v4h2V6C20,5.9,19.1,5,19,5z M5,10h2v4h4v2H5V10z M13,13h2v-4h4V7h-6V13z") });
|
|
1251
|
-
var IconMinus = createIconBase({ paths: p3("M19,13H5v-2h14V13z") });
|
|
1252
|
-
var IconMoonFilled = createIconBase({ paths: p3("M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3z") });
|
|
1253
|
-
var IconMoreHorizontal = createIconBase({ paths: p3("M6,10c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S7.1,10,6,10z M12,10c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S13.1,10,12,10z M18,10c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S19.1,10,18,10z") });
|
|
1254
|
-
var IconMoreVertical = createIconBase({ paths: p3("M12,8c1.1,0,2-0.9,2-2s-0.9-2-2-2s-2,0.9-2,2S10.9,8,12,8z M12,10c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S13.1,10,12,10z M12,16c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S13.1,16,12,16z") });
|
|
1255
|
-
var IconMusic = createIconBase({ paths: p3("M12,3v10.55c-0.59-0.34-1.27-0.55-2-0.55C7.79,13,6,14.79,6,17s1.79,4,4,4s4-1.79,4-4V7h4V3H12z") });
|
|
1256
|
-
var IconNavigation = createIconBase({ paths: p3("M12,2L4.5,20.29l0.71,0.71L12,18l6.79,3l0.71-0.71L12,2z") });
|
|
1257
|
-
var IconPaperclip = createIconBase({ paths: p3("M16.5,6v11.5c0,2.21-1.79,4-4,4s-4-1.79-4-4V5c0-1.38,1.12-2.5,2.5-2.5s2.5,1.12,2.5,2.5v10.5c0,0.55-0.45,1-1,1s-1-0.45-1-1V6H10v9.5c0,1.38,1.12,2.5,2.5,2.5s2.5-1.12,2.5-2.5V5c0-2.21-1.79-4-4-4S7,2.79,7,5v12.5c0,3.04,2.46,5.5,5.5,5.5s5.5-2.46,5.5-5.5V6H16.5z") });
|
|
1258
|
-
var IconPercent = createIconBase({ paths: p3("M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M7.5,9C6.67,9,6,8.33,6,7.5S6.67,6,7.5,6S9,6.67,9,7.5S8.33,9,7.5,9z M6,16.5l9-9l1.5,1.5l-9,9L6,16.5z M16.5,18c-0.83,0-1.5-0.67-1.5-1.5s0.67-1.5,1.5-1.5s1.5,0.67,1.5,1.5S17.33,18,16.5,18z") });
|
|
1259
|
-
var IconPhone = createIconBase({ paths: p3("M6.62,10.79c1.44,2.83,3.76,5.14,6.59,6.59l2.2-2.2c0.27-0.27,0.67-0.36,1.02-0.24c1.12,0.37,2.33,0.57,3.57,0.57c0.55,0,1,0.45,1,1V20c0,0.55-0.45,1-1,1c-9.39,0-17-7.61-17-17c0-0.55,0.45-1,1-1h3.5c0.55,0,1,0.45,1,1c0,1.25,0.2,2.45,0.57,3.57C5.1,9.04,5.01,9.44,4.74,9.71L6.62,10.79z") });
|
|
1260
|
-
var IconPin = createIconBase({ paths: p3("M16,9V4l1-1V2H7v1l1,1v5c-2.21,1.58-3,4.06-3,7h5v7l1,1l1-1v-7h5C16,13.06,15.21,11.58,14,9z") });
|
|
1261
|
-
var IconPrinter = createIconBase({ paths: p3("M19,8H5c-1.66,0-3,1.34-3,3v6h4v4h12v-4h4v-6C22,9.34,20.66,8,19,8z M16,19H8v-5h8V19z M19,12c-0.55,0-1-0.45-1-1s0.45-1,1-1s1,0.45,1,1S19.55,12,19,12z M18,3H6v4h12V3z") });
|
|
1262
|
-
var IconRedo = createIconBase({ paths: p3("M18.4,10.6C16.55,8.99,14.15,8,11.5,8c-4.65,0-8.58,3.03-9.96,7.22L3.9,16c1.05-3.19,4.05-5.5,7.6-5.5c1.95,0,3.73,0.72,5.12,1.88L13,16h9V7L18.4,10.6z") });
|
|
1263
|
-
var IconRefresh = createIconBase({ paths: p3("M17.65,6.35C16.2,4.9,14.21,4,12,4c-4.42,0-7.99,3.58-7.99,8s3.57,8,7.99,8c3.73,0,6.84-2.55,7.73-6h-2.08C16.92,17.28,14.67,19,12,19c-3.86,0-7-3.14-7-7s3.14-7,7-7c1.93,0,3.68,0.79,4.95,2.05L14,10h7V3L17.65,6.35z") });
|
|
1264
|
-
var IconReply = createIconBase({ paths: p3("M10,9V5l-7,7l7,7v-4.1c5,0,8.5,1.6,11,5.1c-1-5-4-10-11-11z") });
|
|
1265
|
-
var IconReport = createIconBase({ paths: p3("M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M9,17H7v-7h2V17z M13,17h-2V7h2V17z M17,17h-2v-4h2V17z") });
|
|
1266
|
-
|
|
1267
931
|
// src/components/ui/Alert.tsx
|
|
1268
|
-
var
|
|
932
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
1269
933
|
var statusConfig = {
|
|
1270
934
|
info: { icon: IconInfo },
|
|
1271
935
|
success: { icon: IconCheckCircle },
|
|
@@ -1304,7 +968,7 @@ var Alert = (0, import_react5.forwardRef)(function Alert2(_a, ref) {
|
|
|
1304
968
|
]);
|
|
1305
969
|
const config = statusConfig[status];
|
|
1306
970
|
const Icon = config.icon;
|
|
1307
|
-
return /* @__PURE__ */ (0,
|
|
971
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
1308
972
|
"div",
|
|
1309
973
|
__spreadProps(__spreadValues({
|
|
1310
974
|
ref,
|
|
@@ -1313,20 +977,20 @@ var Alert = (0, import_react5.forwardRef)(function Alert2(_a, ref) {
|
|
|
1313
977
|
className: cn("ph-alert", statusClassMap[status], className)
|
|
1314
978
|
}, props), {
|
|
1315
979
|
children: [
|
|
1316
|
-
icon != null ? icon : /* @__PURE__ */ (0,
|
|
1317
|
-
/* @__PURE__ */ (0,
|
|
1318
|
-
title && /* @__PURE__ */ (0,
|
|
1319
|
-
description && /* @__PURE__ */ (0,
|
|
980
|
+
icon != null ? icon : /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Icon, { className: "ph-alert-icon mt-0.5 h-5 w-5 shrink-0", "aria-hidden": true }),
|
|
981
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "min-w-0 flex-1", children: [
|
|
982
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { className: "font-semibold", children: title }),
|
|
983
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { className: "mt-1 text-sm text-ph-subtle", children: description }),
|
|
1320
984
|
children
|
|
1321
985
|
] }),
|
|
1322
|
-
onDismiss && /* @__PURE__ */ (0,
|
|
986
|
+
onDismiss && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
1323
987
|
"button",
|
|
1324
988
|
{
|
|
1325
989
|
type: "button",
|
|
1326
990
|
onClick: onDismiss,
|
|
1327
991
|
className: "ph-alert-dismiss",
|
|
1328
992
|
"aria-label": dismissLabel,
|
|
1329
|
-
children: /* @__PURE__ */ (0,
|
|
993
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(IconClose, { className: "h-4 w-4", "aria-hidden": true })
|
|
1330
994
|
}
|
|
1331
995
|
)
|
|
1332
996
|
]
|
|
@@ -1337,7 +1001,7 @@ Alert.displayName = "Alert";
|
|
|
1337
1001
|
|
|
1338
1002
|
// src/components/ui/Badge.tsx
|
|
1339
1003
|
var import_react6 = require("react");
|
|
1340
|
-
var
|
|
1004
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
1341
1005
|
var variantMap = {
|
|
1342
1006
|
brand: "ph-badge-brand",
|
|
1343
1007
|
neutral: "ph-badge-neutral",
|
|
@@ -1363,7 +1027,7 @@ var Badge = (0, import_react6.forwardRef)(function Badge2(_a, ref) {
|
|
|
1363
1027
|
"children",
|
|
1364
1028
|
"className"
|
|
1365
1029
|
]);
|
|
1366
|
-
return /* @__PURE__ */ (0,
|
|
1030
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
1367
1031
|
"span",
|
|
1368
1032
|
__spreadProps(__spreadValues({
|
|
1369
1033
|
ref,
|
|
@@ -1382,7 +1046,7 @@ Badge.displayName = "Badge";
|
|
|
1382
1046
|
|
|
1383
1047
|
// src/components/ui/Card.tsx
|
|
1384
1048
|
var import_react7 = require("react");
|
|
1385
|
-
var
|
|
1049
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
1386
1050
|
var variantMap2 = {
|
|
1387
1051
|
default: "",
|
|
1388
1052
|
outlined: "border-2 border-ph-border",
|
|
@@ -1415,7 +1079,7 @@ var Card = (0, import_react7.forwardRef)(function Card2(_a, ref) {
|
|
|
1415
1079
|
"interactive",
|
|
1416
1080
|
"titleAs"
|
|
1417
1081
|
]);
|
|
1418
|
-
return /* @__PURE__ */ (0,
|
|
1082
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
|
|
1419
1083
|
"div",
|
|
1420
1084
|
__spreadProps(__spreadValues({
|
|
1421
1085
|
ref,
|
|
@@ -1427,14 +1091,14 @@ var Card = (0, import_react7.forwardRef)(function Card2(_a, ref) {
|
|
|
1427
1091
|
)
|
|
1428
1092
|
}, props), {
|
|
1429
1093
|
children: [
|
|
1430
|
-
media && /* @__PURE__ */ (0,
|
|
1431
|
-
/* @__PURE__ */ (0,
|
|
1432
|
-
title && /* @__PURE__ */ (0,
|
|
1433
|
-
description && /* @__PURE__ */ (0,
|
|
1094
|
+
media && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "ph-card-media", children: media }),
|
|
1095
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: cn("ph-card-body", bodyClassName), children: [
|
|
1096
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Title2, { className: "ph-card-title", children: title }),
|
|
1097
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", { className: "text-sm text-ph-subtle", children: description }),
|
|
1434
1098
|
children,
|
|
1435
|
-
actions && /* @__PURE__ */ (0,
|
|
1099
|
+
actions && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "ph-card-actions", children: actions })
|
|
1436
1100
|
] }),
|
|
1437
|
-
footer && /* @__PURE__ */ (0,
|
|
1101
|
+
footer && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "border-t border-ph-border px-6 py-4 text-xs text-ph-subtle", children: footer })
|
|
1438
1102
|
]
|
|
1439
1103
|
})
|
|
1440
1104
|
);
|
|
@@ -1442,7 +1106,7 @@ var Card = (0, import_react7.forwardRef)(function Card2(_a, ref) {
|
|
|
1442
1106
|
Card.displayName = "Card";
|
|
1443
1107
|
|
|
1444
1108
|
// src/components/ui/Drawer.tsx
|
|
1445
|
-
var
|
|
1109
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
1446
1110
|
var sideMap = {
|
|
1447
1111
|
left: "left-0 border-r",
|
|
1448
1112
|
right: "right-0 border-l"
|
|
@@ -1464,9 +1128,9 @@ function Drawer({
|
|
|
1464
1128
|
showCloseButton = true
|
|
1465
1129
|
}) {
|
|
1466
1130
|
if (!open) return null;
|
|
1467
|
-
return /* @__PURE__ */ (0,
|
|
1468
|
-
/* @__PURE__ */ (0,
|
|
1469
|
-
/* @__PURE__ */ (0,
|
|
1131
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
|
|
1132
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "fixed inset-0 z-[120] bg-black/45 backdrop-blur-[2px]", role: "presentation", onClick: onClose }),
|
|
1133
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
1470
1134
|
"aside",
|
|
1471
1135
|
{
|
|
1472
1136
|
className: cn(
|
|
@@ -1476,12 +1140,12 @@ function Drawer({
|
|
|
1476
1140
|
className
|
|
1477
1141
|
),
|
|
1478
1142
|
children: [
|
|
1479
|
-
(title || showCloseButton) && /* @__PURE__ */ (0,
|
|
1480
|
-
/* @__PURE__ */ (0,
|
|
1481
|
-
showCloseButton && onClose && /* @__PURE__ */ (0,
|
|
1143
|
+
(title || showCloseButton) && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("header", { className: "flex items-center justify-between border-b border-ph-border px-4 py-3", children: [
|
|
1144
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "text-sm font-bold text-ph-ink", children: title }),
|
|
1145
|
+
showCloseButton && onClose && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Button, { variant: "ghost", className: "ph-btn-circle", onClick: onClose, "aria-label": "Close drawer", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(IconClose, { className: "h-5 w-5" }) })
|
|
1482
1146
|
] }),
|
|
1483
|
-
/* @__PURE__ */ (0,
|
|
1484
|
-
footer && /* @__PURE__ */ (0,
|
|
1147
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "flex-1", children }),
|
|
1148
|
+
footer && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("footer", { className: "border-t border-ph-border px-4 py-3", children: footer })
|
|
1485
1149
|
]
|
|
1486
1150
|
}
|
|
1487
1151
|
)
|
|
@@ -1489,7 +1153,7 @@ function Drawer({
|
|
|
1489
1153
|
}
|
|
1490
1154
|
|
|
1491
1155
|
// src/components/ui/Kbd.tsx
|
|
1492
|
-
var
|
|
1156
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
1493
1157
|
var platformLabels = {
|
|
1494
1158
|
text: {
|
|
1495
1159
|
command: "Command",
|
|
@@ -1548,17 +1212,17 @@ function Kbd(_a) {
|
|
|
1548
1212
|
"aria-label"
|
|
1549
1213
|
]);
|
|
1550
1214
|
if (variant === "token") {
|
|
1551
|
-
return /* @__PURE__ */ (0,
|
|
1215
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("code", __spreadProps(__spreadValues({ className: cn("ph-code-token ph-kbd", className), "aria-label": ariaLabel }, props), { children }));
|
|
1552
1216
|
}
|
|
1553
1217
|
const sourceKeys = (keys == null ? void 0 : keys.length) ? keys : children != null ? [children] : [];
|
|
1554
1218
|
const displayKeys = sourceKeys.map((key) => formatKey(key, platform));
|
|
1555
1219
|
const accessibleLabel = ariaLabel != null ? ariaLabel : getShortcutLabel(displayKeys);
|
|
1556
1220
|
if (variant === "key") {
|
|
1557
|
-
return /* @__PURE__ */ (0,
|
|
1221
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("kbd", __spreadProps(__spreadValues({ className: cn("ph-keycap", className), "aria-label": accessibleLabel }, props), { children: displayKeys[0] }));
|
|
1558
1222
|
}
|
|
1559
|
-
return /* @__PURE__ */ (0,
|
|
1560
|
-
index > 0 && separator != null ? /* @__PURE__ */ (0,
|
|
1561
|
-
/* @__PURE__ */ (0,
|
|
1223
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("kbd", __spreadProps(__spreadValues({ className: cn("ph-shortcut-group ph-keycap", className), "aria-label": accessibleLabel }, props), { children: displayKeys.map((key, index) => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("span", { className: "contents", children: [
|
|
1224
|
+
index > 0 && separator != null ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "ph-shortcut-separator", "aria-hidden": "true", children: separator }) : null,
|
|
1225
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "ph-shortcut-key", "aria-hidden": accessibleLabel ? true : void 0, children: key })
|
|
1562
1226
|
] }, index)) }));
|
|
1563
1227
|
}
|
|
1564
1228
|
function formatKey(key, platform) {
|
|
@@ -1577,7 +1241,7 @@ function getShortcutLabel(keys) {
|
|
|
1577
1241
|
}
|
|
1578
1242
|
|
|
1579
1243
|
// src/components/ui/Loader.tsx
|
|
1580
|
-
var
|
|
1244
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
1581
1245
|
var loaderSizeClass = {
|
|
1582
1246
|
sm: "ph-loader-sm",
|
|
1583
1247
|
md: "ph-loader-md",
|
|
@@ -1603,7 +1267,7 @@ function Loader(_a) {
|
|
|
1603
1267
|
"label",
|
|
1604
1268
|
"className"
|
|
1605
1269
|
]);
|
|
1606
|
-
return /* @__PURE__ */ (0,
|
|
1270
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
1607
1271
|
"span",
|
|
1608
1272
|
__spreadProps(__spreadValues({
|
|
1609
1273
|
role: "status",
|
|
@@ -1611,20 +1275,20 @@ function Loader(_a) {
|
|
|
1611
1275
|
className: cn("ph-loader", loaderSizeClass[size], className)
|
|
1612
1276
|
}, props), {
|
|
1613
1277
|
children: [
|
|
1614
|
-
variant === "spinner" ? /* @__PURE__ */ (0,
|
|
1615
|
-
variant === "dots" ? /* @__PURE__ */ (0,
|
|
1616
|
-
/* @__PURE__ */ (0,
|
|
1617
|
-
/* @__PURE__ */ (0,
|
|
1618
|
-
/* @__PURE__ */ (0,
|
|
1278
|
+
variant === "spinner" ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "ph-loading", "aria-hidden": true }) : null,
|
|
1279
|
+
variant === "dots" ? /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { className: "ph-loading-dots", "aria-hidden": true, children: [
|
|
1280
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", {}),
|
|
1281
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", {}),
|
|
1282
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", {})
|
|
1619
1283
|
] }) : null,
|
|
1620
|
-
variant === "pulse" ? /* @__PURE__ */ (0,
|
|
1284
|
+
variant === "pulse" ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "ph-loading-pulse", "aria-hidden": true }) : null
|
|
1621
1285
|
]
|
|
1622
1286
|
})
|
|
1623
1287
|
);
|
|
1624
1288
|
}
|
|
1625
1289
|
function Skeleton(_a) {
|
|
1626
1290
|
var _b = _a, { shape = "text", className } = _b, props = __objRest(_b, ["shape", "className"]);
|
|
1627
|
-
return /* @__PURE__ */ (0,
|
|
1291
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1628
1292
|
"span",
|
|
1629
1293
|
__spreadValues({
|
|
1630
1294
|
className: cn("ph-skeleton", skeletonShapeClass[shape], className),
|
|
@@ -1648,62 +1312,62 @@ function LoadingState(_a) {
|
|
|
1648
1312
|
"size",
|
|
1649
1313
|
"className"
|
|
1650
1314
|
]);
|
|
1651
|
-
return /* @__PURE__ */ (0,
|
|
1652
|
-
/* @__PURE__ */ (0,
|
|
1653
|
-
/* @__PURE__ */ (0,
|
|
1654
|
-
/* @__PURE__ */ (0,
|
|
1655
|
-
description ? /* @__PURE__ */ (0,
|
|
1315
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", __spreadProps(__spreadValues({ className: cn("ph-loading-state", className), role: "status", "aria-label": label }, props), { children: [
|
|
1316
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Loader, { variant, size, label, "aria-hidden": "true" }),
|
|
1317
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "ph-loading-state__copy", children: [
|
|
1318
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("strong", { children: title }),
|
|
1319
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { children: description }) : null
|
|
1656
1320
|
] })
|
|
1657
1321
|
] }));
|
|
1658
1322
|
}
|
|
1659
1323
|
|
|
1660
1324
|
// src/components/ui/AuthLayout.tsx
|
|
1661
1325
|
var import_react8 = require("react");
|
|
1662
|
-
var
|
|
1326
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
1663
1327
|
function AuthLayout(_a) {
|
|
1664
1328
|
var _b = _a, { brand, footer, aside, children, className } = _b, props = __objRest(_b, ["brand", "footer", "aside", "children", "className"]);
|
|
1665
|
-
return /* @__PURE__ */ (0,
|
|
1666
|
-
aside ? /* @__PURE__ */ (0,
|
|
1667
|
-
/* @__PURE__ */ (0,
|
|
1668
|
-
brand ? /* @__PURE__ */ (0,
|
|
1329
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", __spreadProps(__spreadValues({ className: cn("ph-auth-layout", aside != null && "ph-auth-layout--split", className) }, props), { children: [
|
|
1330
|
+
aside ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("aside", { className: "ph-auth-layout__aside", children: aside }) : null,
|
|
1331
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "ph-auth-layout__main", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "ph-auth-layout__column", children: [
|
|
1332
|
+
brand ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "ph-auth-layout__brand", children: brand }) : null,
|
|
1669
1333
|
children,
|
|
1670
|
-
footer ? /* @__PURE__ */ (0,
|
|
1334
|
+
footer ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("footer", { className: "ph-auth-layout__footer", children: footer }) : null
|
|
1671
1335
|
] }) })
|
|
1672
1336
|
] }));
|
|
1673
1337
|
}
|
|
1674
1338
|
function AuthCard(_a) {
|
|
1675
1339
|
var _b = _a, { title, description, footer, children, className } = _b, props = __objRest(_b, ["title", "description", "footer", "children", "className"]);
|
|
1676
1340
|
const titleId = (0, import_react8.useId)();
|
|
1677
|
-
return /* @__PURE__ */ (0,
|
|
1678
|
-
/* @__PURE__ */ (0,
|
|
1679
|
-
/* @__PURE__ */ (0,
|
|
1680
|
-
description ? /* @__PURE__ */ (0,
|
|
1341
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("section", __spreadProps(__spreadValues({ className: cn("ph-auth-card", className), "aria-labelledby": titleId }, props), { children: [
|
|
1342
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("header", { className: "ph-auth-card__header", children: [
|
|
1343
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("h1", { id: titleId, children: title }),
|
|
1344
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { children: description }) : null
|
|
1681
1345
|
] }),
|
|
1682
|
-
/* @__PURE__ */ (0,
|
|
1683
|
-
footer ? /* @__PURE__ */ (0,
|
|
1346
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "ph-auth-card__body", children }),
|
|
1347
|
+
footer ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("footer", { className: "ph-auth-card__footer", children: footer }) : null
|
|
1684
1348
|
] }));
|
|
1685
1349
|
}
|
|
1686
1350
|
function AuthDivider(_a) {
|
|
1687
1351
|
var _b = _a, { children = "or continue with", className } = _b, props = __objRest(_b, ["children", "className"]);
|
|
1688
|
-
return /* @__PURE__ */ (0,
|
|
1352
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", __spreadProps(__spreadValues({ className: cn("ph-auth-divider", className) }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { children }) }));
|
|
1689
1353
|
}
|
|
1690
1354
|
|
|
1691
1355
|
// src/components/ui/SettingsLayout.tsx
|
|
1692
|
-
var
|
|
1356
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
1693
1357
|
function SettingsNav(_a) {
|
|
1694
1358
|
var _b = _a, { groups, className } = _b, props = __objRest(_b, ["groups", "className"]);
|
|
1695
|
-
return /* @__PURE__ */ (0,
|
|
1696
|
-
/* @__PURE__ */ (0,
|
|
1697
|
-
/* @__PURE__ */ (0,
|
|
1359
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", __spreadProps(__spreadValues({ className: cn("ph-settings-nav", className) }, props), { children: groups.map((group, index) => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "ph-settings-nav__group", children: [
|
|
1360
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("h3", { children: group.label }),
|
|
1361
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "ph-settings-nav__items", children: group.items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
1698
1362
|
"a",
|
|
1699
1363
|
{
|
|
1700
1364
|
href: item.href,
|
|
1701
1365
|
className: cn("ph-settings-nav__item", item.active && "ph-settings-nav__item--active"),
|
|
1702
1366
|
"aria-current": item.active ? "page" : void 0,
|
|
1703
1367
|
children: [
|
|
1704
|
-
item.icon ? /* @__PURE__ */ (0,
|
|
1705
|
-
/* @__PURE__ */ (0,
|
|
1706
|
-
item.badge ? /* @__PURE__ */ (0,
|
|
1368
|
+
item.icon ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ph-settings-nav__icon", children: item.icon }) : null,
|
|
1369
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { children: item.label }),
|
|
1370
|
+
item.badge ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "ph-settings-nav__badge", children: item.badge }) : null
|
|
1707
1371
|
]
|
|
1708
1372
|
},
|
|
1709
1373
|
item.id
|
|
@@ -1728,31 +1392,31 @@ function SettingsLayout(_a) {
|
|
|
1728
1392
|
"children",
|
|
1729
1393
|
"className"
|
|
1730
1394
|
]);
|
|
1731
|
-
return /* @__PURE__ */ (0,
|
|
1732
|
-
/* @__PURE__ */ (0,
|
|
1733
|
-
/* @__PURE__ */ (0,
|
|
1734
|
-
/* @__PURE__ */ (0,
|
|
1735
|
-
description ? /* @__PURE__ */ (0,
|
|
1395
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("section", __spreadProps(__spreadValues({ className: cn("ph-settings-layout", className) }, props), { children: [
|
|
1396
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("header", { className: "ph-settings-layout__header", children: [
|
|
1397
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { children: [
|
|
1398
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("h2", { children: title }),
|
|
1399
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { children: description }) : null
|
|
1736
1400
|
] }),
|
|
1737
|
-
actions ? /* @__PURE__ */ (0,
|
|
1401
|
+
actions ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "ph-settings-layout__actions", children: actions }) : null
|
|
1738
1402
|
] }),
|
|
1739
|
-
/* @__PURE__ */ (0,
|
|
1740
|
-
/* @__PURE__ */ (0,
|
|
1741
|
-
/* @__PURE__ */ (0,
|
|
1403
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("details", { className: "ph-settings-layout__mobile-nav", children: [
|
|
1404
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("summary", { children: [
|
|
1405
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(IconTuning, { className: "h-4 w-4", "aria-hidden": true }),
|
|
1742
1406
|
"Settings menu"
|
|
1743
1407
|
] }),
|
|
1744
|
-
/* @__PURE__ */ (0,
|
|
1408
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("nav", { "aria-label": navigationLabel, children: navigation })
|
|
1745
1409
|
] }),
|
|
1746
|
-
/* @__PURE__ */ (0,
|
|
1747
|
-
/* @__PURE__ */ (0,
|
|
1748
|
-
/* @__PURE__ */ (0,
|
|
1410
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "ph-settings-layout__grid", children: [
|
|
1411
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("aside", { className: "ph-settings-layout__sidebar", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("nav", { "aria-label": navigationLabel, children: navigation }) }),
|
|
1412
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "ph-settings-layout__content", children })
|
|
1749
1413
|
] })
|
|
1750
1414
|
] }));
|
|
1751
1415
|
}
|
|
1752
1416
|
|
|
1753
1417
|
// src/components/ui/DropdownMenu.tsx
|
|
1754
1418
|
var DropdownPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"));
|
|
1755
|
-
var
|
|
1419
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
1756
1420
|
var sizeClass2 = {
|
|
1757
1421
|
xs: "ph-btn-xs",
|
|
1758
1422
|
sm: "ph-btn-sm",
|
|
@@ -1774,7 +1438,7 @@ function DropdownContent({
|
|
|
1774
1438
|
avoidCollisions = true,
|
|
1775
1439
|
panelClassName
|
|
1776
1440
|
}) {
|
|
1777
|
-
return /* @__PURE__ */ (0,
|
|
1441
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DropdownPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
|
|
1778
1442
|
DropdownPrimitive.Content,
|
|
1779
1443
|
{
|
|
1780
1444
|
className: cn("ph-dropdown-panel", panelClassName),
|
|
@@ -1787,7 +1451,7 @@ function DropdownContent({
|
|
|
1787
1451
|
sticky: "partial",
|
|
1788
1452
|
children: [
|
|
1789
1453
|
children,
|
|
1790
|
-
/* @__PURE__ */ (0,
|
|
1454
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DropdownPrimitive.Arrow, { className: "ph-dropdown-arrow", width: 12, height: 6 })
|
|
1791
1455
|
]
|
|
1792
1456
|
}
|
|
1793
1457
|
) });
|
|
@@ -1828,7 +1492,7 @@ function DropdownMenu(_a) {
|
|
|
1828
1492
|
"modal",
|
|
1829
1493
|
"disabled"
|
|
1830
1494
|
]);
|
|
1831
|
-
return /* @__PURE__ */ (0,
|
|
1495
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", __spreadProps(__spreadValues({ className: cn("ph-dropdown", className) }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
|
|
1832
1496
|
DropdownPrimitive.Root,
|
|
1833
1497
|
{
|
|
1834
1498
|
open,
|
|
@@ -1836,8 +1500,8 @@ function DropdownMenu(_a) {
|
|
|
1836
1500
|
onOpenChange,
|
|
1837
1501
|
modal,
|
|
1838
1502
|
children: [
|
|
1839
|
-
/* @__PURE__ */ (0,
|
|
1840
|
-
/* @__PURE__ */ (0,
|
|
1503
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DropdownPrimitive.Trigger, { asChild: true, disabled, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("button", { type: "button", className: "ph-dropdown-trigger", "aria-label": ariaLabel, children: trigger }) }),
|
|
1504
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
1841
1505
|
DropdownContent,
|
|
1842
1506
|
{
|
|
1843
1507
|
align,
|
|
@@ -1902,8 +1566,8 @@ function DropdownButton(_a) {
|
|
|
1902
1566
|
"modal",
|
|
1903
1567
|
"disabled"
|
|
1904
1568
|
]);
|
|
1905
|
-
const trailing = sideIcon != null ? sideIcon : /* @__PURE__ */ (0,
|
|
1906
|
-
return /* @__PURE__ */ (0,
|
|
1569
|
+
const trailing = sideIcon != null ? sideIcon : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(IconChevronDown, { className: "h-4 w-4", "aria-hidden": true });
|
|
1570
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", __spreadProps(__spreadValues({ className: cn("ph-dropdown", className) }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
|
|
1907
1571
|
DropdownPrimitive.Root,
|
|
1908
1572
|
{
|
|
1909
1573
|
open,
|
|
@@ -1911,7 +1575,7 @@ function DropdownButton(_a) {
|
|
|
1911
1575
|
onOpenChange,
|
|
1912
1576
|
modal,
|
|
1913
1577
|
children: [
|
|
1914
|
-
/* @__PURE__ */ (0,
|
|
1578
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DropdownPrimitive.Trigger, { asChild: true, disabled, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
1915
1579
|
"button",
|
|
1916
1580
|
{
|
|
1917
1581
|
type: "button",
|
|
@@ -1924,10 +1588,10 @@ function DropdownButton(_a) {
|
|
|
1924
1588
|
split && "ph-btn-split"
|
|
1925
1589
|
),
|
|
1926
1590
|
"aria-label": ariaLabel,
|
|
1927
|
-
children: /* @__PURE__ */ (0,
|
|
1591
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(ButtonChrome, { label, icon, sideIcon: trailing, split })
|
|
1928
1592
|
}
|
|
1929
1593
|
) }),
|
|
1930
|
-
/* @__PURE__ */ (0,
|
|
1594
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
1931
1595
|
DropdownContent,
|
|
1932
1596
|
{
|
|
1933
1597
|
align,
|
|
@@ -1946,7 +1610,7 @@ function DropdownButton(_a) {
|
|
|
1946
1610
|
}
|
|
1947
1611
|
function DropdownItem(_a) {
|
|
1948
1612
|
var _b = _a, { className, children, disabled } = _b, props = __objRest(_b, ["className", "children", "disabled"]);
|
|
1949
|
-
return /* @__PURE__ */ (0,
|
|
1613
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DropdownPrimitive.Item, { asChild: true, disabled, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
1950
1614
|
"button",
|
|
1951
1615
|
__spreadProps(__spreadValues({
|
|
1952
1616
|
type: "button",
|
|
@@ -1958,13 +1622,13 @@ function DropdownItem(_a) {
|
|
|
1958
1622
|
) });
|
|
1959
1623
|
}
|
|
1960
1624
|
function DropdownRadioGroup(props) {
|
|
1961
|
-
return /* @__PURE__ */ (0,
|
|
1625
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DropdownPrimitive.RadioGroup, __spreadValues({}, props));
|
|
1962
1626
|
}
|
|
1963
1627
|
function DropdownRadioItem(_a) {
|
|
1964
1628
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
1965
|
-
return /* @__PURE__ */ (0,
|
|
1966
|
-
/* @__PURE__ */ (0,
|
|
1967
|
-
/* @__PURE__ */ (0,
|
|
1629
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(DropdownPrimitive.RadioItem, __spreadProps(__spreadValues({ className: cn("ph-dropdown-item ph-dropdown-radio-item", className) }, props), { children: [
|
|
1630
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "ph-dropdown-item-indicator", "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DropdownPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(IconCheck, { className: "h-3.5 w-3.5" }) }) }),
|
|
1631
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { children })
|
|
1968
1632
|
] }));
|
|
1969
1633
|
}
|
|
1970
1634
|
|
|
@@ -1973,7 +1637,7 @@ var import_react10 = require("react");
|
|
|
1973
1637
|
|
|
1974
1638
|
// src/components/ui/FormField.tsx
|
|
1975
1639
|
var import_react9 = require("react");
|
|
1976
|
-
var
|
|
1640
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
1977
1641
|
function FormField(_a) {
|
|
1978
1642
|
var _b = _a, {
|
|
1979
1643
|
controlId,
|
|
@@ -2006,26 +1670,26 @@ function FormField(_a) {
|
|
|
2006
1670
|
"aria-errormessage": errorId,
|
|
2007
1671
|
"aria-invalid": error ? true : void 0
|
|
2008
1672
|
};
|
|
2009
|
-
return /* @__PURE__ */ (0,
|
|
2010
|
-
label ? /* @__PURE__ */ (0,
|
|
1673
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", __spreadProps(__spreadValues({ className: cn("ph-field", className) }, props), { children: [
|
|
1674
|
+
label ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
2011
1675
|
"label",
|
|
2012
1676
|
{
|
|
2013
1677
|
htmlFor: id,
|
|
2014
1678
|
className: cn("ph-label", hideLabel && "sr-only", disabled && "opacity-50"),
|
|
2015
1679
|
children: [
|
|
2016
1680
|
label,
|
|
2017
|
-
required ? /* @__PURE__ */ (0,
|
|
1681
|
+
required ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { "aria-hidden": "true", children: " *" }) : null
|
|
2018
1682
|
]
|
|
2019
1683
|
}
|
|
2020
1684
|
) : null,
|
|
2021
1685
|
typeof children === "function" ? children(controlProps) : children,
|
|
2022
|
-
descriptionId ? /* @__PURE__ */ (0,
|
|
2023
|
-
errorId ? /* @__PURE__ */ (0,
|
|
1686
|
+
descriptionId ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { id: descriptionId, className: "mt-1 text-xs text-ph-subtle", children: helperText }) : null,
|
|
1687
|
+
errorId ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { id: errorId, className: "mt-1 text-xs font-medium text-ph-danger", children: error }) : null
|
|
2024
1688
|
] }));
|
|
2025
1689
|
}
|
|
2026
1690
|
|
|
2027
1691
|
// src/components/ui/Input.tsx
|
|
2028
|
-
var
|
|
1692
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
2029
1693
|
var sizeMap3 = {
|
|
2030
1694
|
sm: "ph-input-sm",
|
|
2031
1695
|
md: "",
|
|
@@ -2066,7 +1730,7 @@ var Input = (0, import_react10.forwardRef)(function Input2(_a, ref) {
|
|
|
2066
1730
|
const autoId = (0, import_react10.useId)();
|
|
2067
1731
|
const id = idProp != null ? idProp : autoId;
|
|
2068
1732
|
const hasError = Boolean(error);
|
|
2069
|
-
return /* @__PURE__ */ (0,
|
|
1733
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2070
1734
|
FormField,
|
|
2071
1735
|
{
|
|
2072
1736
|
controlId: id,
|
|
@@ -2077,7 +1741,7 @@ var Input = (0, import_react10.forwardRef)(function Input2(_a, ref) {
|
|
|
2077
1741
|
required,
|
|
2078
1742
|
disabled,
|
|
2079
1743
|
className: wrapperClassName,
|
|
2080
|
-
children: (fieldProps) => /* @__PURE__ */ (0,
|
|
1744
|
+
children: (fieldProps) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2081
1745
|
"input",
|
|
2082
1746
|
__spreadValues(__spreadProps(__spreadValues({}, fieldProps), {
|
|
2083
1747
|
ref,
|
|
@@ -2129,7 +1793,7 @@ var Select = (0, import_react10.forwardRef)(function Select2(_a, ref) {
|
|
|
2129
1793
|
const autoId = (0, import_react10.useId)();
|
|
2130
1794
|
const id = idProp != null ? idProp : autoId;
|
|
2131
1795
|
const hasError = Boolean(error);
|
|
2132
|
-
return /* @__PURE__ */ (0,
|
|
1796
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(FormField, { controlId: id, label, hideLabel, helperText, error, required, disabled, className: wrapperClassName, children: (fieldProps) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2133
1797
|
"select",
|
|
2134
1798
|
__spreadProps(__spreadValues(__spreadProps(__spreadValues({}, fieldProps), {
|
|
2135
1799
|
ref,
|
|
@@ -2178,7 +1842,7 @@ var Textarea = (0, import_react10.forwardRef)(function Textarea2(_a, ref) {
|
|
|
2178
1842
|
const autoId = (0, import_react10.useId)();
|
|
2179
1843
|
const id = idProp != null ? idProp : autoId;
|
|
2180
1844
|
const hasError = Boolean(error);
|
|
2181
|
-
return /* @__PURE__ */ (0,
|
|
1845
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(FormField, { controlId: id, label, hideLabel, helperText, error, required, disabled, className: wrapperClassName, children: (fieldProps) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2182
1846
|
"textarea",
|
|
2183
1847
|
__spreadValues(__spreadProps(__spreadValues({}, fieldProps), {
|
|
2184
1848
|
ref,
|
|
@@ -2221,9 +1885,9 @@ var Checkbox = (0, import_react10.forwardRef)(function Checkbox2(_a, ref) {
|
|
|
2221
1885
|
const hasError = Boolean(error);
|
|
2222
1886
|
const descriptionId = helperText && !hasError ? `${id}-description` : void 0;
|
|
2223
1887
|
const errorId = error ? `${id}-error` : void 0;
|
|
2224
|
-
return /* @__PURE__ */ (0,
|
|
2225
|
-
/* @__PURE__ */ (0,
|
|
2226
|
-
/* @__PURE__ */ (0,
|
|
1888
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: cn("ph-control-row", wrapperClassName), children: [
|
|
1889
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("span", { className: "ph-checkbox-wrap", children: [
|
|
1890
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2227
1891
|
"input",
|
|
2228
1892
|
__spreadValues({
|
|
2229
1893
|
ref,
|
|
@@ -2241,12 +1905,12 @@ var Checkbox = (0, import_react10.forwardRef)(function Checkbox2(_a, ref) {
|
|
|
2241
1905
|
)
|
|
2242
1906
|
}, props)
|
|
2243
1907
|
),
|
|
2244
|
-
/* @__PURE__ */ (0,
|
|
1908
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(IconCheck, { className: "ph-checkbox-icon", "aria-hidden": true })
|
|
2245
1909
|
] }),
|
|
2246
|
-
/* @__PURE__ */ (0,
|
|
2247
|
-
/* @__PURE__ */ (0,
|
|
2248
|
-
descriptionId ? /* @__PURE__ */ (0,
|
|
2249
|
-
errorId ? /* @__PURE__ */ (0,
|
|
1910
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "ph-control-copy", children: [
|
|
1911
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("label", { htmlFor: id, className: cn("cursor-pointer", disabled && "opacity-60"), children: label }),
|
|
1912
|
+
descriptionId ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { id: descriptionId, className: "text-xs text-ph-subtle", children: helperText }) : null,
|
|
1913
|
+
errorId ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { id: errorId, className: "text-xs font-medium text-ph-danger", children: error }) : null
|
|
2250
1914
|
] })
|
|
2251
1915
|
] });
|
|
2252
1916
|
});
|
|
@@ -2267,8 +1931,8 @@ var Radio = (0, import_react10.forwardRef)(function Radio2(_a, ref) {
|
|
|
2267
1931
|
]);
|
|
2268
1932
|
const autoId = (0, import_react10.useId)();
|
|
2269
1933
|
const id = idProp != null ? idProp : autoId;
|
|
2270
|
-
return /* @__PURE__ */ (0,
|
|
2271
|
-
/* @__PURE__ */ (0,
|
|
1934
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: cn("ph-control-row", wrapperClassName, disabled && "opacity-60"), children: [
|
|
1935
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2272
1936
|
"input",
|
|
2273
1937
|
__spreadValues({
|
|
2274
1938
|
ref,
|
|
@@ -2278,7 +1942,7 @@ var Radio = (0, import_react10.forwardRef)(function Radio2(_a, ref) {
|
|
|
2278
1942
|
className: cn("ph-radio", disabled && "cursor-not-allowed", className)
|
|
2279
1943
|
}, props)
|
|
2280
1944
|
),
|
|
2281
|
-
/* @__PURE__ */ (0,
|
|
1945
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("label", { htmlFor: id, className: cn("cursor-pointer", disabled && "opacity-60"), children: label })
|
|
2282
1946
|
] });
|
|
2283
1947
|
});
|
|
2284
1948
|
Radio.displayName = "Radio";
|
|
@@ -2298,9 +1962,9 @@ var Toggle = (0, import_react10.forwardRef)(function Toggle2(_a, ref) {
|
|
|
2298
1962
|
]);
|
|
2299
1963
|
const autoId = (0, import_react10.useId)();
|
|
2300
1964
|
const id = idProp != null ? idProp : autoId;
|
|
2301
|
-
return /* @__PURE__ */ (0,
|
|
2302
|
-
/* @__PURE__ */ (0,
|
|
2303
|
-
/* @__PURE__ */ (0,
|
|
1965
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("label", { className: cn("ph-control-row-between", wrapperClassName, disabled && "opacity-60"), children: [
|
|
1966
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: disabled ? "opacity-60" : void 0, children: label }),
|
|
1967
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2304
1968
|
"input",
|
|
2305
1969
|
__spreadValues({
|
|
2306
1970
|
ref,
|
|
@@ -2334,13 +1998,13 @@ var Range = (0, import_react10.forwardRef)(function Range2(_a, ref) {
|
|
|
2334
1998
|
]);
|
|
2335
1999
|
const autoId = (0, import_react10.useId)();
|
|
2336
2000
|
const id = idProp != null ? idProp : autoId;
|
|
2337
|
-
return /* @__PURE__ */ (0,
|
|
2338
|
-
label && /* @__PURE__ */ (0,
|
|
2339
|
-
/* @__PURE__ */ (0,
|
|
2340
|
-
(minLabel || valueLabel || maxLabel) && /* @__PURE__ */ (0,
|
|
2341
|
-
/* @__PURE__ */ (0,
|
|
2342
|
-
/* @__PURE__ */ (0,
|
|
2343
|
-
/* @__PURE__ */ (0,
|
|
2001
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: cn("ph-field", wrapperClassName), children: [
|
|
2002
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("label", { htmlFor: id, className: "ph-label", children: label }),
|
|
2003
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("input", __spreadValues({ ref, id, type: "range", className: cn("ph-range", className) }, props)),
|
|
2004
|
+
(minLabel || valueLabel || maxLabel) && /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex justify-between text-xs text-ph-mutedtext", children: [
|
|
2005
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { children: minLabel }),
|
|
2006
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { children: valueLabel }),
|
|
2007
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { children: maxLabel })
|
|
2344
2008
|
] })
|
|
2345
2009
|
] });
|
|
2346
2010
|
});
|
|
@@ -2361,10 +2025,10 @@ var FileUpload = (0, import_react10.forwardRef)(function FileUpload2(_a, ref) {
|
|
|
2361
2025
|
]);
|
|
2362
2026
|
const autoId = (0, import_react10.useId)();
|
|
2363
2027
|
const id = idProp != null ? idProp : autoId;
|
|
2364
|
-
return /* @__PURE__ */ (0,
|
|
2365
|
-
label && /* @__PURE__ */ (0,
|
|
2366
|
-
/* @__PURE__ */ (0,
|
|
2367
|
-
/* @__PURE__ */ (0,
|
|
2028
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: cn("ph-field", wrapperClassName), children: [
|
|
2029
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("label", { htmlFor: id, className: "ph-label", children: label }),
|
|
2030
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("label", { htmlFor: id, className: "ph-file-upload", children: [
|
|
2031
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("input", __spreadValues({ ref, id, type: "file", className: cn("sr-only", className) }, props)),
|
|
2368
2032
|
prompt
|
|
2369
2033
|
] })
|
|
2370
2034
|
] });
|
|
@@ -2374,7 +2038,7 @@ FileUpload.displayName = "FileUpload";
|
|
|
2374
2038
|
// src/components/ui/Modal.tsx
|
|
2375
2039
|
var Dialog = __toESM(require("@radix-ui/react-dialog"));
|
|
2376
2040
|
var import_react11 = require("react");
|
|
2377
|
-
var
|
|
2041
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
2378
2042
|
var sizeMap4 = {
|
|
2379
2043
|
sm: "max-w-sm",
|
|
2380
2044
|
md: "max-w-lg",
|
|
@@ -2398,16 +2062,16 @@ function Modal({
|
|
|
2398
2062
|
}) {
|
|
2399
2063
|
const canDismiss = Boolean(onClose);
|
|
2400
2064
|
const restoreFocusRef = (0, import_react11.useRef)(null);
|
|
2401
|
-
return /* @__PURE__ */ (0,
|
|
2065
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
2402
2066
|
Dialog.Root,
|
|
2403
2067
|
{
|
|
2404
2068
|
open,
|
|
2405
2069
|
onOpenChange: (nextOpen) => {
|
|
2406
2070
|
if (!nextOpen) onClose == null ? void 0 : onClose();
|
|
2407
2071
|
},
|
|
2408
|
-
children: /* @__PURE__ */ (0,
|
|
2409
|
-
/* @__PURE__ */ (0,
|
|
2410
|
-
/* @__PURE__ */ (0,
|
|
2072
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Dialog.Portal, { children: [
|
|
2073
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Dialog.Overlay, { className: "ph-modal-overlay" }),
|
|
2074
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
2411
2075
|
Dialog.Content,
|
|
2412
2076
|
__spreadProps(__spreadValues({
|
|
2413
2077
|
className: cn("ph-modal-panel", sizeMap4[size], className),
|
|
@@ -2428,16 +2092,16 @@ function Modal({
|
|
|
2428
2092
|
if (!canDismiss || !closeOnOutsideClick) event.preventDefault();
|
|
2429
2093
|
},
|
|
2430
2094
|
children: [
|
|
2431
|
-
title ? null : /* @__PURE__ */ (0,
|
|
2432
|
-
title || description || showCloseButton && canDismiss ? /* @__PURE__ */ (0,
|
|
2433
|
-
/* @__PURE__ */ (0,
|
|
2434
|
-
title ? /* @__PURE__ */ (0,
|
|
2435
|
-
description ? /* @__PURE__ */ (0,
|
|
2095
|
+
title ? null : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Dialog.Title, { className: "sr-only", children: ariaLabel != null ? ariaLabel : "Dialog" }),
|
|
2096
|
+
title || description || showCloseButton && canDismiss ? /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("header", { className: "ph-modal-header", children: [
|
|
2097
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "min-w-0", children: [
|
|
2098
|
+
title ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Dialog.Title, { className: "text-lg font-bold text-ph-ink", children: title }) : null,
|
|
2099
|
+
description ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Dialog.Description, { className: "mt-1 text-sm text-ph-subtle", children: description }) : null
|
|
2436
2100
|
] }),
|
|
2437
|
-
showCloseButton && canDismiss ? /* @__PURE__ */ (0,
|
|
2101
|
+
showCloseButton && canDismiss ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Dialog.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("button", { type: "button", className: "ph-modal-close", "aria-label": "Close dialog", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(IconClose, { className: "h-5 w-5", "aria-hidden": true }) }) }) : null
|
|
2438
2102
|
] }) : null,
|
|
2439
|
-
/* @__PURE__ */ (0,
|
|
2440
|
-
footer ? /* @__PURE__ */ (0,
|
|
2103
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "ph-modal-body", children }),
|
|
2104
|
+
footer ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "ph-modal-footer", children: footer }) : null
|
|
2441
2105
|
]
|
|
2442
2106
|
})
|
|
2443
2107
|
)
|
|
@@ -2447,11 +2111,11 @@ function Modal({
|
|
|
2447
2111
|
}
|
|
2448
2112
|
|
|
2449
2113
|
// src/components/ui/Navigation.tsx
|
|
2450
|
-
var
|
|
2114
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
2451
2115
|
function Breadcrumbs({ items, label = "Breadcrumb", className }) {
|
|
2452
|
-
return /* @__PURE__ */ (0,
|
|
2453
|
-
index > 0 ? /* @__PURE__ */ (0,
|
|
2454
|
-
item.current || !item.href ? /* @__PURE__ */ (0,
|
|
2116
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("nav", { "aria-label": label, className: cn("ph-breadcrumbs", className), children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("span", { className: "contents", children: [
|
|
2117
|
+
index > 0 ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ph-breadcrumb-sep", "aria-hidden": "true", children: "/" }) : null,
|
|
2118
|
+
item.current || !item.href ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ph-breadcrumb-current", "aria-current": item.current ? "page" : void 0, children: item.label }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("a", { href: item.href, className: "ph-breadcrumb-link", children: item.label })
|
|
2455
2119
|
] }, `${item.label}-${index}`)) });
|
|
2456
2120
|
}
|
|
2457
2121
|
function Pagination({
|
|
@@ -2464,8 +2128,8 @@ function Pagination({
|
|
|
2464
2128
|
}) {
|
|
2465
2129
|
const pages = compact ? [Math.max(1, page - 1), page, Math.min(totalPages, page + 1)] : [1, 2, 3, totalPages];
|
|
2466
2130
|
const uniquePages = Array.from(new Set(pages)).filter((n) => n >= 1 && n <= totalPages);
|
|
2467
|
-
return /* @__PURE__ */ (0,
|
|
2468
|
-
/* @__PURE__ */ (0,
|
|
2131
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("nav", { "aria-label": label, className: cn("ph-pagination", className), children: [
|
|
2132
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
2469
2133
|
"button",
|
|
2470
2134
|
{
|
|
2471
2135
|
type: "button",
|
|
@@ -2473,12 +2137,12 @@ function Pagination({
|
|
|
2473
2137
|
disabled: page <= 1,
|
|
2474
2138
|
"aria-label": "Previous page",
|
|
2475
2139
|
onClick: () => onPageChange == null ? void 0 : onPageChange(page - 1),
|
|
2476
|
-
children: /* @__PURE__ */ (0,
|
|
2140
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(IconChevronLeft, { className: "mx-auto h-4 w-4", "aria-hidden": true })
|
|
2477
2141
|
}
|
|
2478
2142
|
),
|
|
2479
|
-
uniquePages.map((pageNumber, index) => /* @__PURE__ */ (0,
|
|
2480
|
-
!compact && index === uniquePages.length - 1 && pageNumber > 4 ? /* @__PURE__ */ (0,
|
|
2481
|
-
/* @__PURE__ */ (0,
|
|
2143
|
+
uniquePages.map((pageNumber, index) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("span", { className: "contents", children: [
|
|
2144
|
+
!compact && index === uniquePages.length - 1 && pageNumber > 4 ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ph-pagination-ellipsis", "aria-hidden": "true", children: "..." }) : null,
|
|
2145
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
2482
2146
|
"button",
|
|
2483
2147
|
{
|
|
2484
2148
|
type: "button",
|
|
@@ -2489,7 +2153,7 @@ function Pagination({
|
|
|
2489
2153
|
}
|
|
2490
2154
|
)
|
|
2491
2155
|
] }, pageNumber)),
|
|
2492
|
-
/* @__PURE__ */ (0,
|
|
2156
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
2493
2157
|
"button",
|
|
2494
2158
|
{
|
|
2495
2159
|
type: "button",
|
|
@@ -2497,25 +2161,25 @@ function Pagination({
|
|
|
2497
2161
|
disabled: page >= totalPages,
|
|
2498
2162
|
"aria-label": "Next page",
|
|
2499
2163
|
onClick: () => onPageChange == null ? void 0 : onPageChange(page + 1),
|
|
2500
|
-
children: /* @__PURE__ */ (0,
|
|
2164
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(IconChevronRight, { className: "mx-auto h-4 w-4", "aria-hidden": true })
|
|
2501
2165
|
}
|
|
2502
2166
|
)
|
|
2503
2167
|
] });
|
|
2504
2168
|
}
|
|
2505
2169
|
|
|
2506
2170
|
// src/components/ui/Panel.tsx
|
|
2507
|
-
var
|
|
2171
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
2508
2172
|
function Panel(_a) {
|
|
2509
2173
|
var _b = _a, { title, description, children, className } = _b, props = __objRest(_b, ["title", "description", "children", "className"]);
|
|
2510
|
-
return /* @__PURE__ */ (0,
|
|
2511
|
-
title && /* @__PURE__ */ (0,
|
|
2512
|
-
description && /* @__PURE__ */ (0,
|
|
2174
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", __spreadProps(__spreadValues({ className: cn("ph-panel", className) }, props), { children: [
|
|
2175
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("h3", { className: "text-sm font-semibold uppercase tracking-wider text-ph-mutedtext", children: title }),
|
|
2176
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "text-sm text-ph-subtle", children: description }),
|
|
2513
2177
|
children
|
|
2514
2178
|
] }));
|
|
2515
2179
|
}
|
|
2516
2180
|
|
|
2517
2181
|
// src/components/ui/Rating.tsx
|
|
2518
|
-
var
|
|
2182
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
2519
2183
|
function Rating(_a) {
|
|
2520
2184
|
var _b = _a, {
|
|
2521
2185
|
label,
|
|
@@ -2535,9 +2199,9 @@ function Rating(_a) {
|
|
|
2535
2199
|
"wrapperClassName"
|
|
2536
2200
|
]);
|
|
2537
2201
|
const stars = Array.from({ length: max }, (_, index) => index + 1);
|
|
2538
|
-
return /* @__PURE__ */ (0,
|
|
2539
|
-
label && /* @__PURE__ */ (0,
|
|
2540
|
-
/* @__PURE__ */ (0,
|
|
2202
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: cn("ph-field", wrapperClassName), children: [
|
|
2203
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "ph-label", children: label }),
|
|
2204
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
2541
2205
|
"div",
|
|
2542
2206
|
__spreadProps(__spreadValues({
|
|
2543
2207
|
className: cn("ph-rating flex", className),
|
|
@@ -2547,7 +2211,7 @@ function Rating(_a) {
|
|
|
2547
2211
|
children: stars.map((star) => {
|
|
2548
2212
|
const active = star <= value;
|
|
2549
2213
|
if (readOnly) {
|
|
2550
|
-
return /* @__PURE__ */ (0,
|
|
2214
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
2551
2215
|
IconStar,
|
|
2552
2216
|
{
|
|
2553
2217
|
className: cn("h-6 w-6", active ? "text-amber-500" : "text-ph-border"),
|
|
@@ -2556,7 +2220,7 @@ function Rating(_a) {
|
|
|
2556
2220
|
star
|
|
2557
2221
|
);
|
|
2558
2222
|
}
|
|
2559
|
-
return /* @__PURE__ */ (0,
|
|
2223
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
2560
2224
|
"button",
|
|
2561
2225
|
{
|
|
2562
2226
|
type: "button",
|
|
@@ -2565,7 +2229,7 @@ function Rating(_a) {
|
|
|
2565
2229
|
"aria-checked": active,
|
|
2566
2230
|
"aria-label": `${star} out of ${max}`,
|
|
2567
2231
|
onClick: () => onChange == null ? void 0 : onChange(star),
|
|
2568
|
-
children: /* @__PURE__ */ (0,
|
|
2232
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(IconStar, { className: cn("h-6 w-6", active ? "text-amber-500" : "text-ph-border") })
|
|
2569
2233
|
},
|
|
2570
2234
|
star
|
|
2571
2235
|
);
|
|
@@ -2577,7 +2241,7 @@ function Rating(_a) {
|
|
|
2577
2241
|
|
|
2578
2242
|
// src/components/ui/SearchInput.tsx
|
|
2579
2243
|
var import_react12 = require("react");
|
|
2580
|
-
var
|
|
2244
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
2581
2245
|
function SearchInput(_a) {
|
|
2582
2246
|
var _b = _a, {
|
|
2583
2247
|
id: idProp,
|
|
@@ -2600,10 +2264,10 @@ function SearchInput(_a) {
|
|
|
2600
2264
|
]);
|
|
2601
2265
|
const autoId = (0, import_react12.useId)();
|
|
2602
2266
|
const id = idProp != null ? idProp : autoId;
|
|
2603
|
-
return /* @__PURE__ */ (0,
|
|
2604
|
-
/* @__PURE__ */ (0,
|
|
2605
|
-
/* @__PURE__ */ (0,
|
|
2606
|
-
shortcut != null ? /* @__PURE__ */ (0,
|
|
2267
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: cn("relative", wrapperClassName), children: [
|
|
2268
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("label", { htmlFor: id, className: hideLabel ? "sr-only" : "ph-label mb-1.5 block", children: label }),
|
|
2269
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "relative", children: [
|
|
2270
|
+
shortcut != null ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2607
2271
|
"span",
|
|
2608
2272
|
{
|
|
2609
2273
|
className: "ph-shortcut pointer-events-none absolute left-3 top-1/2 z-10 -translate-y-1/2 text-xs",
|
|
@@ -2611,7 +2275,7 @@ function SearchInput(_a) {
|
|
|
2611
2275
|
children: shortcut
|
|
2612
2276
|
}
|
|
2613
2277
|
) : null,
|
|
2614
|
-
/* @__PURE__ */ (0,
|
|
2278
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2615
2279
|
"input",
|
|
2616
2280
|
__spreadValues({
|
|
2617
2281
|
id,
|
|
@@ -2647,10 +2311,10 @@ function SearchGroup(_a) {
|
|
|
2647
2311
|
]);
|
|
2648
2312
|
const autoId = (0, import_react12.useId)();
|
|
2649
2313
|
const id = idProp != null ? idProp : autoId;
|
|
2650
|
-
return /* @__PURE__ */ (0,
|
|
2651
|
-
/* @__PURE__ */ (0,
|
|
2652
|
-
/* @__PURE__ */ (0,
|
|
2653
|
-
/* @__PURE__ */ (0,
|
|
2314
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: cn("ph-field", wrapperClassName), children: [
|
|
2315
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("label", { htmlFor: id, className: "ph-label", children: label }),
|
|
2316
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "ph-search-group flex w-full max-w-lg min-h-[2.3125rem] items-stretch divide-x divide-ph-border", children: [
|
|
2317
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2654
2318
|
"input",
|
|
2655
2319
|
__spreadValues({
|
|
2656
2320
|
id,
|
|
@@ -2659,12 +2323,12 @@ function SearchGroup(_a) {
|
|
|
2659
2323
|
className: cn("ph-input ph-input-group-field min-w-0 flex-1", className)
|
|
2660
2324
|
}, props)
|
|
2661
2325
|
),
|
|
2662
|
-
/* @__PURE__ */ (0,
|
|
2326
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2663
2327
|
Button,
|
|
2664
2328
|
{
|
|
2665
2329
|
type: "submit",
|
|
2666
2330
|
variant: "primary",
|
|
2667
|
-
icon: /* @__PURE__ */ (0,
|
|
2331
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(IconSearch, { className: "h-4 w-4", "aria-hidden": true }),
|
|
2668
2332
|
className: "ph-search-group__submit",
|
|
2669
2333
|
"aria-label": submitLabel
|
|
2670
2334
|
}
|
|
@@ -2674,7 +2338,7 @@ function SearchGroup(_a) {
|
|
|
2674
2338
|
}
|
|
2675
2339
|
|
|
2676
2340
|
// src/components/ui/Table.tsx
|
|
2677
|
-
var
|
|
2341
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
2678
2342
|
function Table({
|
|
2679
2343
|
data,
|
|
2680
2344
|
columns,
|
|
@@ -2685,15 +2349,15 @@ function Table({
|
|
|
2685
2349
|
className,
|
|
2686
2350
|
caption
|
|
2687
2351
|
}) {
|
|
2688
|
-
return /* @__PURE__ */ (0,
|
|
2689
|
-
caption && /* @__PURE__ */ (0,
|
|
2690
|
-
/* @__PURE__ */ (0,
|
|
2691
|
-
/* @__PURE__ */ (0,
|
|
2352
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: cn("ph-table-wrap", compact && "ph-table-compact", className), children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("table", { className: cn("ph-table", zebra && "ph-table-zebra", ribbon && "ph-table--ribbon"), children: [
|
|
2353
|
+
caption && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("caption", { className: "sr-only", children: caption }),
|
|
2354
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("tr", { children: columns.map((col) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("th", { className: col.className, children: col.header }, col.key)) }) }),
|
|
2355
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("tbody", { children: data.map((row, i) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("tr", { style: getRowStyle == null ? void 0 : getRowStyle(row), children: columns.map((col) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("td", { className: col.className, children: col.cell(row) }, col.key)) }, i)) })
|
|
2692
2356
|
] }) });
|
|
2693
2357
|
}
|
|
2694
2358
|
|
|
2695
2359
|
// src/components/ui/Stat.tsx
|
|
2696
|
-
var
|
|
2360
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
2697
2361
|
var toneMap = {
|
|
2698
2362
|
default: "text-ph-ink",
|
|
2699
2363
|
brand: "text-ph-brand",
|
|
@@ -2710,16 +2374,16 @@ var statMap = {
|
|
|
2710
2374
|
};
|
|
2711
2375
|
function Stat(_a) {
|
|
2712
2376
|
var _b = _a, { icon, label, value, footer, tone = "default", className } = _b, props = __objRest(_b, ["icon", "label", "value", "footer", "tone", "className"]);
|
|
2713
|
-
return /* @__PURE__ */ (0,
|
|
2714
|
-
icon && /* @__PURE__ */ (0,
|
|
2715
|
-
/* @__PURE__ */ (0,
|
|
2716
|
-
/* @__PURE__ */ (0,
|
|
2717
|
-
footer && /* @__PURE__ */ (0,
|
|
2377
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("article", __spreadProps(__spreadValues({ className: cn("ph-stat", statMap[tone], className) }, props), { children: [
|
|
2378
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: cn("mb-2 h-7 w-7", toneMap[tone]), children: icon }),
|
|
2379
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: cn("ph-stat-label", tone === "warning" && toneMap[tone]), children: label }),
|
|
2380
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: cn("ph-stat-val", toneMap[tone]), children: value }),
|
|
2381
|
+
footer && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "text-xs text-ph-subtle", children: footer })
|
|
2718
2382
|
] }));
|
|
2719
2383
|
}
|
|
2720
2384
|
|
|
2721
2385
|
// src/components/ui/Toast.tsx
|
|
2722
|
-
var
|
|
2386
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
2723
2387
|
var statusConfig2 = {
|
|
2724
2388
|
info: { icon: IconErrorOutline, color: "text-ph-info", bg: "ph-toast-info" },
|
|
2725
2389
|
success: { icon: IconCheckCircle, color: "text-ph-success", bg: "ph-toast-success" },
|
|
@@ -2735,33 +2399,33 @@ function Toast({
|
|
|
2735
2399
|
}) {
|
|
2736
2400
|
const config = statusConfig2[status];
|
|
2737
2401
|
const Icon = config.icon;
|
|
2738
|
-
return /* @__PURE__ */ (0,
|
|
2739
|
-
/* @__PURE__ */ (0,
|
|
2740
|
-
/* @__PURE__ */ (0,
|
|
2741
|
-
/* @__PURE__ */ (0,
|
|
2742
|
-
description && /* @__PURE__ */ (0,
|
|
2402
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: cn("ph-toast", config.bg, className), children: [
|
|
2403
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Icon, { className: cn("mt-0.5 h-5 w-5 shrink-0", config.color), "aria-hidden": true }),
|
|
2404
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "pr-8", children: [
|
|
2405
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "font-semibold", children: title }),
|
|
2406
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { className: "mt-1 text-xs text-ph-subtle", children: description })
|
|
2743
2407
|
] }),
|
|
2744
|
-
onDismiss && /* @__PURE__ */ (0,
|
|
2408
|
+
onDismiss && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2745
2409
|
"button",
|
|
2746
2410
|
{
|
|
2747
2411
|
type: "button",
|
|
2748
2412
|
"aria-label": `Dismiss ${title}`,
|
|
2749
2413
|
className: "absolute right-2 top-2 ph-btn ph-btn-ghost ph-btn-xs ph-btn-circle",
|
|
2750
2414
|
onClick: onDismiss,
|
|
2751
|
-
children: /* @__PURE__ */ (0,
|
|
2415
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(IconClose, { className: "h-4 w-4" })
|
|
2752
2416
|
}
|
|
2753
2417
|
)
|
|
2754
2418
|
] });
|
|
2755
2419
|
}
|
|
2756
2420
|
function ToastStack({ children, className }) {
|
|
2757
|
-
return /* @__PURE__ */ (0,
|
|
2421
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: cn("ph-toast-stack", className), children });
|
|
2758
2422
|
}
|
|
2759
2423
|
|
|
2760
2424
|
// src/components/ui/Tabs.tsx
|
|
2761
|
-
var
|
|
2425
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
2762
2426
|
function Tabs({ items, value, onChange, variant = "pill", className }) {
|
|
2763
2427
|
if (variant === "underline") {
|
|
2764
|
-
return /* @__PURE__ */ (0,
|
|
2428
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: cn("flex gap-6 border-b border-ph-border", className), children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2765
2429
|
"button",
|
|
2766
2430
|
{
|
|
2767
2431
|
type: "button",
|
|
@@ -2775,7 +2439,7 @@ function Tabs({ items, value, onChange, variant = "pill", className }) {
|
|
|
2775
2439
|
item.value
|
|
2776
2440
|
)) });
|
|
2777
2441
|
}
|
|
2778
|
-
return /* @__PURE__ */ (0,
|
|
2442
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: cn("ph-tabs-row inline-flex", className), children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2779
2443
|
"button",
|
|
2780
2444
|
{
|
|
2781
2445
|
type: "button",
|
|
@@ -3047,17 +2711,17 @@ function ThemeDomSync() {
|
|
|
3047
2711
|
|
|
3048
2712
|
// src/components/ui/ThemeManager.tsx
|
|
3049
2713
|
var import_react14 = require("react");
|
|
3050
|
-
var
|
|
2714
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
3051
2715
|
function ThemeManager({ children }) {
|
|
3052
2716
|
(0, import_react14.useLayoutEffect)(() => {
|
|
3053
2717
|
persistTheme(readStoredTheme());
|
|
3054
2718
|
}, []);
|
|
3055
|
-
return /* @__PURE__ */ (0,
|
|
2719
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_jsx_runtime26.Fragment, { children });
|
|
3056
2720
|
}
|
|
3057
2721
|
|
|
3058
2722
|
// src/components/ui/ThemeSwitcher.tsx
|
|
3059
2723
|
var import_react15 = require("react");
|
|
3060
|
-
var
|
|
2724
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
3061
2725
|
function ThemeSwitcher({ className }) {
|
|
3062
2726
|
const [themeId, setThemeId] = (0, import_react15.useState)("hedgehog-light");
|
|
3063
2727
|
(0, import_react15.useEffect)(() => {
|
|
@@ -3065,9 +2729,9 @@ function ThemeSwitcher({ className }) {
|
|
|
3065
2729
|
persistTheme(id);
|
|
3066
2730
|
setThemeId(id);
|
|
3067
2731
|
}, []);
|
|
3068
|
-
return /* @__PURE__ */ (0,
|
|
3069
|
-
/* @__PURE__ */ (0,
|
|
3070
|
-
/* @__PURE__ */ (0,
|
|
2732
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("label", { className: cn("flex min-w-0 items-center gap-2", className), children: [
|
|
2733
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "shrink-0 text-xs font-medium text-ph-mutedtext sm:text-sm", children: "Theme" }),
|
|
2734
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
3071
2735
|
"select",
|
|
3072
2736
|
{
|
|
3073
2737
|
className: "ph-select max-w-[11rem] !min-h-[2rem] py-1 pl-2.5 pr-8 text-xs sm:max-w-[14rem] sm:text-sm",
|
|
@@ -3078,7 +2742,7 @@ function ThemeSwitcher({ className }) {
|
|
|
3078
2742
|
persistTheme(next);
|
|
3079
2743
|
setThemeId(next);
|
|
3080
2744
|
},
|
|
3081
|
-
children: THEME_GROUPS.map((group) => /* @__PURE__ */ (0,
|
|
2745
|
+
children: THEME_GROUPS.map((group) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("optgroup", { label: group, children: THEMES.filter((theme) => theme.group === group).map((theme) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("option", { value: theme.id, children: theme.name }, theme.id)) }, group))
|
|
3082
2746
|
}
|
|
3083
2747
|
)
|
|
3084
2748
|
] });
|
|
@@ -3086,7 +2750,7 @@ function ThemeSwitcher({ className }) {
|
|
|
3086
2750
|
|
|
3087
2751
|
// src/components/ui/Accordion.tsx
|
|
3088
2752
|
var import_react16 = require("react");
|
|
3089
|
-
var
|
|
2753
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
3090
2754
|
function Accordion({
|
|
3091
2755
|
items,
|
|
3092
2756
|
allowMultiple = false,
|
|
@@ -3108,18 +2772,18 @@ function Accordion({
|
|
|
3108
2772
|
return next;
|
|
3109
2773
|
});
|
|
3110
2774
|
};
|
|
3111
|
-
return /* @__PURE__ */ (0,
|
|
2775
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: cn("divide-y divide-ph-border rounded-xl border border-ph-border bg-ph-surface", className), children: items.map((item) => {
|
|
3112
2776
|
const isOpen = openItems.has(item.id);
|
|
3113
|
-
return /* @__PURE__ */ (0,
|
|
3114
|
-
/* @__PURE__ */ (0,
|
|
2777
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "first:rounded-t-xl last:rounded-b-xl", children: [
|
|
2778
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
|
3115
2779
|
"button",
|
|
3116
2780
|
{
|
|
3117
2781
|
type: "button",
|
|
3118
2782
|
onClick: () => toggleItem(item.id),
|
|
3119
2783
|
className: "flex w-full items-center justify-between px-5 py-4 text-left transition hover:bg-ph-muted",
|
|
3120
2784
|
children: [
|
|
3121
|
-
/* @__PURE__ */ (0,
|
|
3122
|
-
/* @__PURE__ */ (0,
|
|
2785
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "font-semibold text-ph-ink", children: item.title }),
|
|
2786
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3123
2787
|
IconChevronDown,
|
|
3124
2788
|
{
|
|
3125
2789
|
className: cn(
|
|
@@ -3131,14 +2795,14 @@ function Accordion({
|
|
|
3131
2795
|
]
|
|
3132
2796
|
}
|
|
3133
2797
|
),
|
|
3134
|
-
/* @__PURE__ */ (0,
|
|
2798
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3135
2799
|
"div",
|
|
3136
2800
|
{
|
|
3137
2801
|
className: cn(
|
|
3138
2802
|
"grid transition-all duration-200",
|
|
3139
2803
|
isOpen ? "grid-rows-[1fr]" : "grid-rows-[0fr]"
|
|
3140
2804
|
),
|
|
3141
|
-
children: /* @__PURE__ */ (0,
|
|
2805
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "px-5 pb-4 text-ph-subtle", children: item.content }) })
|
|
3142
2806
|
}
|
|
3143
2807
|
)
|
|
3144
2808
|
] }, item.id);
|
|
@@ -3146,16 +2810,16 @@ function Accordion({
|
|
|
3146
2810
|
}
|
|
3147
2811
|
|
|
3148
2812
|
// src/components/ui/Stepper.tsx
|
|
3149
|
-
var
|
|
2813
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
3150
2814
|
function Stepper({ steps, currentStep, className }) {
|
|
3151
|
-
return /* @__PURE__ */ (0,
|
|
2815
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: cn("flex items-start gap-2", className), children: steps.map((step, index) => {
|
|
3152
2816
|
const isCompleted = index < currentStep;
|
|
3153
2817
|
const isCurrent = index === currentStep;
|
|
3154
2818
|
const isPending = index > currentStep;
|
|
3155
2819
|
const isError = step.status === "error";
|
|
3156
|
-
return /* @__PURE__ */ (0,
|
|
3157
|
-
/* @__PURE__ */ (0,
|
|
3158
|
-
/* @__PURE__ */ (0,
|
|
2820
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "flex flex-1 items-start gap-2", children: [
|
|
2821
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "flex flex-1 flex-col items-center", children: [
|
|
2822
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3159
2823
|
"div",
|
|
3160
2824
|
{
|
|
3161
2825
|
className: cn(
|
|
@@ -3165,11 +2829,11 @@ function Stepper({ steps, currentStep, className }) {
|
|
|
3165
2829
|
isCurrent && isError && "bg-ph-danger text-[var(--ph-on-danger)]",
|
|
3166
2830
|
isPending && "bg-ph-muted text-ph-mutedtext"
|
|
3167
2831
|
),
|
|
3168
|
-
children: isCompleted ? /* @__PURE__ */ (0,
|
|
2832
|
+
children: isCompleted ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(IconCheck, { className: "h-5 w-5", "aria-hidden": true }) : index + 1
|
|
3169
2833
|
}
|
|
3170
2834
|
),
|
|
3171
|
-
/* @__PURE__ */ (0,
|
|
3172
|
-
/* @__PURE__ */ (0,
|
|
2835
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "mt-2 text-center", children: [
|
|
2836
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3173
2837
|
"p",
|
|
3174
2838
|
{
|
|
3175
2839
|
className: cn(
|
|
@@ -3180,10 +2844,10 @@ function Stepper({ steps, currentStep, className }) {
|
|
|
3180
2844
|
children: step.label
|
|
3181
2845
|
}
|
|
3182
2846
|
),
|
|
3183
|
-
step.description && /* @__PURE__ */ (0,
|
|
2847
|
+
step.description && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: "mt-0.5 text-xs text-ph-mutedtext", children: step.description })
|
|
3184
2848
|
] })
|
|
3185
2849
|
] }),
|
|
3186
|
-
index < steps.length - 1 && /* @__PURE__ */ (0,
|
|
2850
|
+
index < steps.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3187
2851
|
"div",
|
|
3188
2852
|
{
|
|
3189
2853
|
className: cn(
|
|
@@ -3197,16 +2861,16 @@ function Stepper({ steps, currentStep, className }) {
|
|
|
3197
2861
|
}
|
|
3198
2862
|
|
|
3199
2863
|
// src/components/ui/SegmentedControl.tsx
|
|
3200
|
-
var
|
|
2864
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
3201
2865
|
function SegmentedControl({ options, value, onChange, className }) {
|
|
3202
|
-
return /* @__PURE__ */ (0,
|
|
2866
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
3203
2867
|
"div",
|
|
3204
2868
|
{
|
|
3205
2869
|
className: cn(
|
|
3206
2870
|
"inline-flex rounded-lg bg-ph-muted p-1",
|
|
3207
2871
|
className
|
|
3208
2872
|
),
|
|
3209
|
-
children: options.map((option) => /* @__PURE__ */ (0,
|
|
2873
|
+
children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
|
3210
2874
|
"button",
|
|
3211
2875
|
{
|
|
3212
2876
|
type: "button",
|
|
@@ -3216,7 +2880,7 @@ function SegmentedControl({ options, value, onChange, className }) {
|
|
|
3216
2880
|
value === option.value ? "bg-ph-surface text-ph-ink shadow-ph" : "text-ph-subtle hover:text-ph-ink"
|
|
3217
2881
|
),
|
|
3218
2882
|
children: [
|
|
3219
|
-
option.icon && /* @__PURE__ */ (0,
|
|
2883
|
+
option.icon && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "h-4 w-4", children: option.icon }),
|
|
3220
2884
|
option.label
|
|
3221
2885
|
]
|
|
3222
2886
|
},
|
|
@@ -3228,7 +2892,7 @@ function SegmentedControl({ options, value, onChange, className }) {
|
|
|
3228
2892
|
|
|
3229
2893
|
// src/components/ui/CommandPalette.tsx
|
|
3230
2894
|
var import_react17 = require("react");
|
|
3231
|
-
var
|
|
2895
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
3232
2896
|
function CommandPalette({
|
|
3233
2897
|
items,
|
|
3234
2898
|
isOpen,
|
|
@@ -3277,7 +2941,7 @@ function CommandPalette({
|
|
|
3277
2941
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
3278
2942
|
}, [isOpen, filtered, selectedIndex, onClose]);
|
|
3279
2943
|
if (!isOpen) return null;
|
|
3280
|
-
return /* @__PURE__ */ (0,
|
|
2944
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "fixed inset-0 z-50 flex items-start justify-center bg-black/40 pt-[20vh] backdrop-blur-sm", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
|
3281
2945
|
"div",
|
|
3282
2946
|
{
|
|
3283
2947
|
className: cn(
|
|
@@ -3285,9 +2949,9 @@ function CommandPalette({
|
|
|
3285
2949
|
className
|
|
3286
2950
|
),
|
|
3287
2951
|
children: [
|
|
3288
|
-
/* @__PURE__ */ (0,
|
|
3289
|
-
/* @__PURE__ */ (0,
|
|
3290
|
-
/* @__PURE__ */ (0,
|
|
2952
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "flex items-center gap-3 border-b border-ph-border px-4 py-3", children: [
|
|
2953
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(IconSearch, { className: "h-5 w-5 text-ph-mutedtext" }),
|
|
2954
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
3291
2955
|
"input",
|
|
3292
2956
|
{
|
|
3293
2957
|
ref: inputRef,
|
|
@@ -3301,9 +2965,9 @@ function CommandPalette({
|
|
|
3301
2965
|
className: "flex-1 bg-transparent text-ph-ink outline-none placeholder:text-ph-mutedtext"
|
|
3302
2966
|
}
|
|
3303
2967
|
),
|
|
3304
|
-
/* @__PURE__ */ (0,
|
|
2968
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("kbd", { className: "rounded border border-ph-border bg-ph-muted px-1.5 py-0.5 text-xs text-ph-mutedtext", children: "ESC" })
|
|
3305
2969
|
] }),
|
|
3306
|
-
/* @__PURE__ */ (0,
|
|
2970
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "max-h-[50vh] overflow-y-auto py-2", children: filtered.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "px-4 py-8 text-center text-sm text-ph-mutedtext", children: "No results found." }) : filtered.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
|
3307
2971
|
"button",
|
|
3308
2972
|
{
|
|
3309
2973
|
type: "button",
|
|
@@ -3317,9 +2981,9 @@ function CommandPalette({
|
|
|
3317
2981
|
index === selectedIndex ? "bg-ph-muted text-ph-ink" : "text-ph-subtle"
|
|
3318
2982
|
),
|
|
3319
2983
|
children: [
|
|
3320
|
-
item.icon && /* @__PURE__ */ (0,
|
|
3321
|
-
/* @__PURE__ */ (0,
|
|
3322
|
-
item.shortcut && /* @__PURE__ */ (0,
|
|
2984
|
+
item.icon && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "h-5 w-5", children: item.icon }),
|
|
2985
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "flex-1", children: item.label }),
|
|
2986
|
+
item.shortcut && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("kbd", { className: "rounded border border-ph-border bg-ph-surface px-1.5 py-0.5 text-xs text-ph-mutedtext", children: item.shortcut })
|
|
3323
2987
|
]
|
|
3324
2988
|
},
|
|
3325
2989
|
item.id
|
|
@@ -3331,7 +2995,7 @@ function CommandPalette({
|
|
|
3331
2995
|
|
|
3332
2996
|
// src/components/ui/Calendar.tsx
|
|
3333
2997
|
var import_react18 = require("react");
|
|
3334
|
-
var
|
|
2998
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
3335
2999
|
function Calendar({ value, onChange, className }) {
|
|
3336
3000
|
const [currentMonth, setCurrentMonth] = (0, import_react18.useState)(value || /* @__PURE__ */ new Date());
|
|
3337
3001
|
const today = /* @__PURE__ */ new Date();
|
|
@@ -3373,37 +3037,37 @@ function Calendar({ value, onChange, className }) {
|
|
|
3373
3037
|
for (let i = 1; i <= daysInMonth; i++) {
|
|
3374
3038
|
days.push(i);
|
|
3375
3039
|
}
|
|
3376
|
-
return /* @__PURE__ */ (0,
|
|
3377
|
-
/* @__PURE__ */ (0,
|
|
3378
|
-
/* @__PURE__ */ (0,
|
|
3040
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: cn("w-[280px] rounded-xl border border-ph-border bg-ph-surface p-4 shadow-ph", className), children: [
|
|
3041
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "mb-4 flex items-center justify-between", children: [
|
|
3042
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
3379
3043
|
"button",
|
|
3380
3044
|
{
|
|
3381
3045
|
type: "button",
|
|
3382
3046
|
onClick: prevMonth,
|
|
3383
3047
|
"aria-label": "Previous month",
|
|
3384
3048
|
className: "rounded-lg p-1 text-ph-subtle transition hover:bg-ph-muted hover:text-ph-ink",
|
|
3385
|
-
children: /* @__PURE__ */ (0,
|
|
3049
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(IconChevronLeft, { className: "h-5 w-5", "aria-hidden": true })
|
|
3386
3050
|
}
|
|
3387
3051
|
),
|
|
3388
|
-
/* @__PURE__ */ (0,
|
|
3052
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("span", { className: "text-sm font-semibold text-ph-ink", children: [
|
|
3389
3053
|
monthNames[month],
|
|
3390
3054
|
" ",
|
|
3391
3055
|
year
|
|
3392
3056
|
] }),
|
|
3393
|
-
/* @__PURE__ */ (0,
|
|
3057
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
3394
3058
|
"button",
|
|
3395
3059
|
{
|
|
3396
3060
|
type: "button",
|
|
3397
3061
|
onClick: nextMonth,
|
|
3398
3062
|
"aria-label": "Next month",
|
|
3399
3063
|
className: "rounded-lg p-1 text-ph-subtle transition hover:bg-ph-muted hover:text-ph-ink",
|
|
3400
|
-
children: /* @__PURE__ */ (0,
|
|
3064
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(IconChevronRight, { className: "h-5 w-5", "aria-hidden": true })
|
|
3401
3065
|
}
|
|
3402
3066
|
)
|
|
3403
3067
|
] }),
|
|
3404
|
-
/* @__PURE__ */ (0,
|
|
3405
|
-
weekDays.map((day) => /* @__PURE__ */ (0,
|
|
3406
|
-
days.map((day, index) => /* @__PURE__ */ (0,
|
|
3068
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "grid grid-cols-7 gap-1", children: [
|
|
3069
|
+
weekDays.map((day) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "py-1 text-center text-xs font-medium text-ph-mutedtext", children: day }, day)),
|
|
3070
|
+
days.map((day, index) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "aspect-square", children: day && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
3407
3071
|
"button",
|
|
3408
3072
|
{
|
|
3409
3073
|
type: "button",
|
|
@@ -3421,10 +3085,10 @@ function Calendar({ value, onChange, className }) {
|
|
|
3421
3085
|
|
|
3422
3086
|
// src/components/ui/HoverCard.tsx
|
|
3423
3087
|
var import_react19 = require("react");
|
|
3424
|
-
var
|
|
3088
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
3425
3089
|
function HoverCard({ trigger, children, className }) {
|
|
3426
3090
|
const [isVisible, setIsVisible] = (0, import_react19.useState)(false);
|
|
3427
|
-
return /* @__PURE__ */ (0,
|
|
3091
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
3428
3092
|
"div",
|
|
3429
3093
|
{
|
|
3430
3094
|
className: "relative inline-block",
|
|
@@ -3432,7 +3096,7 @@ function HoverCard({ trigger, children, className }) {
|
|
|
3432
3096
|
onMouseLeave: () => setIsVisible(false),
|
|
3433
3097
|
children: [
|
|
3434
3098
|
trigger,
|
|
3435
|
-
/* @__PURE__ */ (0,
|
|
3099
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
3436
3100
|
"div",
|
|
3437
3101
|
{
|
|
3438
3102
|
className: cn(
|
|
@@ -3441,8 +3105,8 @@ function HoverCard({ trigger, children, className }) {
|
|
|
3441
3105
|
className
|
|
3442
3106
|
),
|
|
3443
3107
|
children: [
|
|
3444
|
-
/* @__PURE__ */ (0,
|
|
3445
|
-
/* @__PURE__ */ (0,
|
|
3108
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "absolute -top-1.5 left-1/2 h-3 w-3 -translate-x-1/2 rotate-45 border-l border-t border-ph-border bg-ph-surface" }),
|
|
3109
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "relative", children })
|
|
3446
3110
|
]
|
|
3447
3111
|
}
|
|
3448
3112
|
)
|
|
@@ -3454,13 +3118,13 @@ function HoverCard({ trigger, children, className }) {
|
|
|
3454
3118
|
// src/components/ui/Tooltip.tsx
|
|
3455
3119
|
var import_react20 = require("react");
|
|
3456
3120
|
var import_react_dom = require("react-dom");
|
|
3457
|
-
var
|
|
3121
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
3458
3122
|
var TooltipDelayContext = (0, import_react20.createContext)(0);
|
|
3459
3123
|
function TooltipProvider({
|
|
3460
3124
|
children,
|
|
3461
3125
|
delayDuration = 0
|
|
3462
3126
|
}) {
|
|
3463
|
-
return /* @__PURE__ */ (0,
|
|
3127
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(TooltipDelayContext.Provider, { value: delayDuration, children });
|
|
3464
3128
|
}
|
|
3465
3129
|
function tooltipPosition(trigger, side, align, offset) {
|
|
3466
3130
|
const horizontal = align === "start" ? trigger.left : align === "end" ? trigger.right : trigger.left + trigger.width / 2;
|
|
@@ -3553,8 +3217,8 @@ function Tooltip({
|
|
|
3553
3217
|
(0, import_react20.useEffect)(() => () => clearTimer(), []);
|
|
3554
3218
|
const describedBy = [children.props["aria-describedby"], tooltipId].filter(Boolean).join(" ");
|
|
3555
3219
|
const trigger = (0, import_react20.cloneElement)(children, { "aria-describedby": describedBy });
|
|
3556
|
-
return /* @__PURE__ */ (0,
|
|
3557
|
-
/* @__PURE__ */ (0,
|
|
3220
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
|
|
3221
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
3558
3222
|
"span",
|
|
3559
3223
|
{
|
|
3560
3224
|
ref: triggerRef,
|
|
@@ -3570,12 +3234,12 @@ function Tooltip({
|
|
|
3570
3234
|
}
|
|
3571
3235
|
),
|
|
3572
3236
|
isOpen && position && typeof document !== "undefined" ? (0, import_react_dom.createPortal)(
|
|
3573
|
-
/* @__PURE__ */ (0,
|
|
3237
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
3574
3238
|
"span",
|
|
3575
3239
|
{
|
|
3576
3240
|
style: __spreadValues({ position: "fixed" }, position),
|
|
3577
3241
|
className: "pointer-events-none z-[200]",
|
|
3578
|
-
children: /* @__PURE__ */ (0,
|
|
3242
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
3579
3243
|
"span",
|
|
3580
3244
|
{
|
|
3581
3245
|
id: tooltipId,
|
|
@@ -3593,9 +3257,9 @@ function Tooltip({
|
|
|
3593
3257
|
}
|
|
3594
3258
|
|
|
3595
3259
|
// src/components/ui/EmptyState.tsx
|
|
3596
|
-
var
|
|
3260
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
3597
3261
|
function EmptyState({ icon, title, description, action, className }) {
|
|
3598
|
-
return /* @__PURE__ */ (0,
|
|
3262
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
|
|
3599
3263
|
"div",
|
|
3600
3264
|
{
|
|
3601
3265
|
className: cn(
|
|
@@ -3603,17 +3267,17 @@ function EmptyState({ icon, title, description, action, className }) {
|
|
|
3603
3267
|
className
|
|
3604
3268
|
),
|
|
3605
3269
|
children: [
|
|
3606
|
-
icon && /* @__PURE__ */ (0,
|
|
3607
|
-
/* @__PURE__ */ (0,
|
|
3608
|
-
description && /* @__PURE__ */ (0,
|
|
3609
|
-
action && /* @__PURE__ */ (0,
|
|
3270
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "mb-4 flex h-14 w-14 items-center justify-center rounded-full bg-ph-muted text-ph-mutedtext", children: icon }),
|
|
3271
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("h3", { className: "text-base font-semibold text-ph-ink", children: title }),
|
|
3272
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("p", { className: "mt-1 max-w-sm text-sm text-ph-subtle", children: description }),
|
|
3273
|
+
action && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "mt-4", children: action })
|
|
3610
3274
|
]
|
|
3611
3275
|
}
|
|
3612
3276
|
);
|
|
3613
3277
|
}
|
|
3614
3278
|
|
|
3615
3279
|
// src/components/ui/FilterChips.tsx
|
|
3616
|
-
var
|
|
3280
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
3617
3281
|
function FilterChips({
|
|
3618
3282
|
chips,
|
|
3619
3283
|
onToggle,
|
|
@@ -3621,20 +3285,20 @@ function FilterChips({
|
|
|
3621
3285
|
className,
|
|
3622
3286
|
"aria-label": ariaLabel = "Applied filters"
|
|
3623
3287
|
}) {
|
|
3624
|
-
return /* @__PURE__ */ (0,
|
|
3288
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: cn("ph-filter-chips", className), role: "group", "aria-label": ariaLabel, children: chips.map((chip) => {
|
|
3625
3289
|
var _a;
|
|
3626
3290
|
const label = (_a = chip.removeLabel) != null ? _a : getChipText(chip);
|
|
3627
|
-
const content = /* @__PURE__ */ (0,
|
|
3628
|
-
/* @__PURE__ */ (0,
|
|
3629
|
-
chip.value != null ? /* @__PURE__ */ (0,
|
|
3291
|
+
const content = /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_jsx_runtime36.Fragment, { children: [
|
|
3292
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "ph-filter-chip__label", children: chip.label }),
|
|
3293
|
+
chip.value != null ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "ph-filter-chip__value", children: chip.value }) : null
|
|
3630
3294
|
] });
|
|
3631
|
-
return /* @__PURE__ */ (0,
|
|
3295
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
|
|
3632
3296
|
"span",
|
|
3633
3297
|
{
|
|
3634
3298
|
className: cn("ph-filter-chip", chip.active && "ph-filter-chip--active"),
|
|
3635
3299
|
"data-state": chip.active ? "on" : "off",
|
|
3636
3300
|
children: [
|
|
3637
|
-
onToggle ? /* @__PURE__ */ (0,
|
|
3301
|
+
onToggle ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3638
3302
|
"button",
|
|
3639
3303
|
{
|
|
3640
3304
|
type: "button",
|
|
@@ -3643,15 +3307,15 @@ function FilterChips({
|
|
|
3643
3307
|
onClick: () => onToggle(chip.id),
|
|
3644
3308
|
children: content
|
|
3645
3309
|
}
|
|
3646
|
-
) : /* @__PURE__ */ (0,
|
|
3647
|
-
chip.active && onRemove ? /* @__PURE__ */ (0,
|
|
3310
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "ph-filter-chip__main", children: content }),
|
|
3311
|
+
chip.active && onRemove ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3648
3312
|
"button",
|
|
3649
3313
|
{
|
|
3650
3314
|
type: "button",
|
|
3651
3315
|
className: "ph-filter-chip__remove",
|
|
3652
3316
|
"aria-label": `Remove ${label} filter`,
|
|
3653
3317
|
onClick: () => onRemove(chip.id),
|
|
3654
|
-
children: /* @__PURE__ */ (0,
|
|
3318
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(IconClose, { className: "h-3 w-3", "aria-hidden": true })
|
|
3655
3319
|
}
|
|
3656
3320
|
) : null
|
|
3657
3321
|
]
|
|
@@ -3667,7 +3331,7 @@ function getChipText(chip) {
|
|
|
3667
3331
|
}
|
|
3668
3332
|
|
|
3669
3333
|
// src/components/ui/FilterBar.tsx
|
|
3670
|
-
var
|
|
3334
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
3671
3335
|
function FilterBar(_a) {
|
|
3672
3336
|
var _b = _a, {
|
|
3673
3337
|
children,
|
|
@@ -3684,12 +3348,12 @@ function FilterBar(_a) {
|
|
|
3684
3348
|
"resultCount",
|
|
3685
3349
|
"className"
|
|
3686
3350
|
]);
|
|
3687
|
-
return /* @__PURE__ */ (0,
|
|
3688
|
-
/* @__PURE__ */ (0,
|
|
3351
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", __spreadProps(__spreadValues({ className: cn("ph-filter-bar", className) }, props), { children: [
|
|
3352
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "ph-filter-bar__controls", role: "group", "aria-label": label, children: [
|
|
3689
3353
|
children,
|
|
3690
|
-
onClear ? /* @__PURE__ */ (0,
|
|
3354
|
+
onClear ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("button", { type: "button", className: "ph-filter-bar__clear", onClick: onClear, children: clearLabel }) : null
|
|
3691
3355
|
] }),
|
|
3692
|
-
resultCount != null ? /* @__PURE__ */ (0,
|
|
3356
|
+
resultCount != null ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("output", { className: "ph-filter-bar__results", "aria-live": "polite", children: resultCount }) : null
|
|
3693
3357
|
] }));
|
|
3694
3358
|
}
|
|
3695
3359
|
function FilterMenu({
|
|
@@ -3706,19 +3370,19 @@ function FilterMenu({
|
|
|
3706
3370
|
const selected = options.find((option) => option.value === value);
|
|
3707
3371
|
const displayValue = (_a = selected == null ? void 0 : selected.label) != null ? _a : placeholder;
|
|
3708
3372
|
const accessibleValue = selected ? getOptionText(selected) : String(placeholder);
|
|
3709
|
-
return /* @__PURE__ */ (0,
|
|
3373
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
3710
3374
|
DropdownMenu,
|
|
3711
3375
|
{
|
|
3712
3376
|
"aria-label": `${label}: ${accessibleValue}`,
|
|
3713
3377
|
align,
|
|
3714
3378
|
disabled,
|
|
3715
3379
|
className,
|
|
3716
|
-
trigger: /* @__PURE__ */ (0,
|
|
3717
|
-
/* @__PURE__ */ (0,
|
|
3718
|
-
/* @__PURE__ */ (0,
|
|
3719
|
-
/* @__PURE__ */ (0,
|
|
3380
|
+
trigger: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("span", { className: cn("ph-filter-menu-trigger", selected && "ph-filter-menu-trigger--active"), children: [
|
|
3381
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(IconTuning, { className: "h-3.5 w-3.5", "aria-hidden": true }),
|
|
3382
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "ph-filter-menu-trigger__label", children: label }),
|
|
3383
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "ph-filter-menu-trigger__value", children: displayValue })
|
|
3720
3384
|
] }),
|
|
3721
|
-
children: /* @__PURE__ */ (0,
|
|
3385
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(DropdownRadioGroup, { value, onValueChange, children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
3722
3386
|
DropdownRadioItem,
|
|
3723
3387
|
{
|
|
3724
3388
|
value: option.value,
|
|
@@ -3742,25 +3406,25 @@ function SortMenu({
|
|
|
3742
3406
|
className
|
|
3743
3407
|
}) {
|
|
3744
3408
|
const selected = options.find((option) => option.value === value);
|
|
3745
|
-
return /* @__PURE__ */ (0,
|
|
3409
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
3746
3410
|
DropdownMenu,
|
|
3747
3411
|
{
|
|
3748
3412
|
"aria-label": `${label}: ${selected ? getOptionText(selected) : "Choose sort order"}`,
|
|
3749
3413
|
align,
|
|
3750
3414
|
disabled,
|
|
3751
3415
|
className,
|
|
3752
|
-
trigger: /* @__PURE__ */ (0,
|
|
3753
|
-
/* @__PURE__ */ (0,
|
|
3416
|
+
trigger: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("span", { className: "ph-filter-menu-trigger ph-sort-menu-trigger", children: [
|
|
3417
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
3754
3418
|
IconArrowDown,
|
|
3755
3419
|
{
|
|
3756
3420
|
className: cn("h-3.5 w-3.5", direction === "ascending" && "rotate-180"),
|
|
3757
3421
|
"aria-hidden": true
|
|
3758
3422
|
}
|
|
3759
3423
|
),
|
|
3760
|
-
/* @__PURE__ */ (0,
|
|
3761
|
-
selected ? /* @__PURE__ */ (0,
|
|
3424
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "ph-filter-menu-trigger__label", children: label }),
|
|
3425
|
+
selected ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "ph-filter-menu-trigger__value", children: selected.label }) : null
|
|
3762
3426
|
] }),
|
|
3763
|
-
children: /* @__PURE__ */ (0,
|
|
3427
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(DropdownRadioGroup, { value, onValueChange, children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
3764
3428
|
DropdownRadioItem,
|
|
3765
3429
|
{
|
|
3766
3430
|
value: option.value,
|
|
@@ -3780,7 +3444,7 @@ function getOptionText(option) {
|
|
|
3780
3444
|
}
|
|
3781
3445
|
|
|
3782
3446
|
// src/components/ui/FilterControls.tsx
|
|
3783
|
-
var
|
|
3447
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
3784
3448
|
function FilterControls(_a) {
|
|
3785
3449
|
var _b = _a, {
|
|
3786
3450
|
children,
|
|
@@ -3796,15 +3460,15 @@ function FilterControls(_a) {
|
|
|
3796
3460
|
"className"
|
|
3797
3461
|
]);
|
|
3798
3462
|
const hasChips = Boolean(chipsProps == null ? void 0 : chipsProps.chips.length);
|
|
3799
|
-
return /* @__PURE__ */ (0,
|
|
3800
|
-
/* @__PURE__ */ (0,
|
|
3801
|
-
hasChips && chipsProps ? /* @__PURE__ */ (0,
|
|
3463
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", __spreadProps(__spreadValues({ className: cn("ph-filter-controls", className) }, props), { children: [
|
|
3464
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(FilterBar, __spreadProps(__spreadValues({}, barProps), { children })),
|
|
3465
|
+
hasChips && chipsProps ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(FilterChips, __spreadValues({}, chipsProps)) : emptyState != null ? emptyState : null
|
|
3802
3466
|
] }));
|
|
3803
3467
|
}
|
|
3804
3468
|
|
|
3805
3469
|
// src/components/ui/CodeBlock.tsx
|
|
3806
3470
|
var import_react21 = require("react");
|
|
3807
|
-
var
|
|
3471
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
3808
3472
|
function CodeBlock({ code, language = "tsx", filename, className }) {
|
|
3809
3473
|
const [copied, setCopied] = (0, import_react21.useState)(false);
|
|
3810
3474
|
const handleCopy = async () => {
|
|
@@ -3812,17 +3476,17 @@ function CodeBlock({ code, language = "tsx", filename, className }) {
|
|
|
3812
3476
|
setCopied(true);
|
|
3813
3477
|
setTimeout(() => setCopied(false), 2e3);
|
|
3814
3478
|
};
|
|
3815
|
-
return /* @__PURE__ */ (0,
|
|
3816
|
-
(filename || language) && /* @__PURE__ */ (0,
|
|
3817
|
-
/* @__PURE__ */ (0,
|
|
3818
|
-
/* @__PURE__ */ (0,
|
|
3819
|
-
/* @__PURE__ */ (0,
|
|
3820
|
-
/* @__PURE__ */ (0,
|
|
3821
|
-
/* @__PURE__ */ (0,
|
|
3479
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: cn("overflow-hidden rounded-lg border border-ph-border bg-[#1a1a2e]", className), children: [
|
|
3480
|
+
(filename || language) && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex items-center justify-between border-b border-white/10 px-4 py-2", children: [
|
|
3481
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
3482
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex gap-1.5", children: [
|
|
3483
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "h-3 w-3 rounded-full bg-red-400" }),
|
|
3484
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "h-3 w-3 rounded-full bg-amber-400" }),
|
|
3485
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "h-3 w-3 rounded-full bg-emerald-400" })
|
|
3822
3486
|
] }),
|
|
3823
|
-
filename && /* @__PURE__ */ (0,
|
|
3487
|
+
filename && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "ml-2 text-xs text-white/60", children: filename })
|
|
3824
3488
|
] }),
|
|
3825
|
-
/* @__PURE__ */ (0,
|
|
3489
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
3826
3490
|
"button",
|
|
3827
3491
|
{
|
|
3828
3492
|
type: "button",
|
|
@@ -3832,35 +3496,35 @@ function CodeBlock({ code, language = "tsx", filename, className }) {
|
|
|
3832
3496
|
}
|
|
3833
3497
|
)
|
|
3834
3498
|
] }),
|
|
3835
|
-
/* @__PURE__ */ (0,
|
|
3499
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("pre", { className: "overflow-x-auto p-4 text-sm leading-relaxed", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("code", { className: "font-mono text-[#e4e4e7]", children: code }) })
|
|
3836
3500
|
] });
|
|
3837
3501
|
}
|
|
3838
3502
|
|
|
3839
3503
|
// src/components/ui/ComponentDocs.tsx
|
|
3840
|
-
var
|
|
3504
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
3841
3505
|
function ComponentDocs({ title = "Props & variants", rows, defaultOpen = false, className }) {
|
|
3842
|
-
return /* @__PURE__ */ (0,
|
|
3843
|
-
/* @__PURE__ */ (0,
|
|
3844
|
-
/* @__PURE__ */ (0,
|
|
3845
|
-
/* @__PURE__ */ (0,
|
|
3846
|
-
/* @__PURE__ */ (0,
|
|
3847
|
-
/* @__PURE__ */ (0,
|
|
3506
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("details", { className: cn("ph-panel group overflow-hidden p-0", className), open: defaultOpen, children: [
|
|
3507
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("summary", { className: "flex cursor-pointer list-none items-center justify-between gap-4 border-b border-ph-border px-4 py-3 transition hover:bg-ph-muted/60 [&::-webkit-details-marker]:hidden", children: [
|
|
3508
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("h3", { className: "text-xs font-semibold uppercase tracking-wider text-ph-mutedtext", children: title }),
|
|
3509
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("span", { className: "rounded-full border border-ph-border bg-ph-surface px-2 py-1 text-[10px] font-semibold uppercase tracking-wider text-ph-mutedtext transition group-open:bg-ph-brand group-open:text-white", children: [
|
|
3510
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "group-open:hidden", children: "Show" }),
|
|
3511
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "hidden group-open:inline", children: "Hide" })
|
|
3848
3512
|
] })
|
|
3849
3513
|
] }),
|
|
3850
|
-
/* @__PURE__ */ (0,
|
|
3851
|
-
/* @__PURE__ */ (0,
|
|
3852
|
-
/* @__PURE__ */ (0,
|
|
3853
|
-
/* @__PURE__ */ (0,
|
|
3854
|
-
/* @__PURE__ */ (0,
|
|
3855
|
-
/* @__PURE__ */ (0,
|
|
3514
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "overflow-x-auto border-t border-ph-border", children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("table", { className: "w-full text-left text-sm", children: [
|
|
3515
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("thead", { className: "bg-ph-muted text-xs uppercase tracking-wider text-ph-mutedtext", children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("tr", { children: [
|
|
3516
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("th", { className: "px-4 py-2 font-semibold", children: "Prop" }),
|
|
3517
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("th", { className: "px-4 py-2 font-semibold", children: "Type" }),
|
|
3518
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("th", { className: "px-4 py-2 font-semibold", children: "Default" }),
|
|
3519
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("th", { className: "px-4 py-2 font-semibold", children: "Use" })
|
|
3856
3520
|
] }) }),
|
|
3857
|
-
/* @__PURE__ */ (0,
|
|
3858
|
-
var _a;
|
|
3859
|
-
return /* @__PURE__ */ (0,
|
|
3860
|
-
/* @__PURE__ */ (0,
|
|
3861
|
-
/* @__PURE__ */ (0,
|
|
3862
|
-
/* @__PURE__ */ (0,
|
|
3863
|
-
/* @__PURE__ */ (0,
|
|
3521
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("tbody", { className: "divide-y divide-ph-border", children: rows.map((row) => {
|
|
3522
|
+
var _a, _b;
|
|
3523
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("tr", { children: [
|
|
3524
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("td", { className: "px-4 py-3 align-top font-mono text-xs text-ph-ink", children: row.name }),
|
|
3525
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("td", { className: "px-4 py-3 align-top font-mono text-xs text-ph-subtle", children: row.type }),
|
|
3526
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("td", { className: "px-4 py-3 align-top font-mono text-xs text-ph-subtle", children: (_a = row.defaultValue) != null ? _a : "-" }),
|
|
3527
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("td", { className: "px-4 py-3 align-top text-ph-subtle", children: (_b = row.description) != null ? _b : /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "text-ph-mutedtext", children: "\u2014" }) })
|
|
3864
3528
|
] }, row.name);
|
|
3865
3529
|
}) })
|
|
3866
3530
|
] }) })
|
|
@@ -3869,7 +3533,7 @@ function ComponentDocs({ title = "Props & variants", rows, defaultOpen = false,
|
|
|
3869
3533
|
|
|
3870
3534
|
// src/components/ui/ShowcaseWrapper.tsx
|
|
3871
3535
|
var import_react22 = require("react");
|
|
3872
|
-
var
|
|
3536
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
3873
3537
|
function ShowcaseWrapper({
|
|
3874
3538
|
id,
|
|
3875
3539
|
title,
|
|
@@ -3883,11 +3547,11 @@ function ShowcaseWrapper({
|
|
|
3883
3547
|
var _a;
|
|
3884
3548
|
const [showCode, setShowCode] = (0, import_react22.useState)(false);
|
|
3885
3549
|
const fallbackId = (_a = titleIdMap[title]) != null ? _a : title.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
|
|
3886
|
-
return /* @__PURE__ */ (0,
|
|
3887
|
-
/* @__PURE__ */ (0,
|
|
3888
|
-
/* @__PURE__ */ (0,
|
|
3889
|
-
/* @__PURE__ */ (0,
|
|
3890
|
-
/* @__PURE__ */ (0,
|
|
3550
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("section", { id: id != null ? id : fallbackId, className: cn("scroll-mt-20", className), children: [
|
|
3551
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "ph-h2-rule mb-8", children: [
|
|
3552
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex items-center gap-1.5", children: [
|
|
3553
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("h2", { children: title }),
|
|
3554
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
3891
3555
|
"button",
|
|
3892
3556
|
{
|
|
3893
3557
|
type: "button",
|
|
@@ -3898,15 +3562,15 @@ function ShowcaseWrapper({
|
|
|
3898
3562
|
),
|
|
3899
3563
|
title: showCode ? "Hide code" : "Show code",
|
|
3900
3564
|
"aria-label": showCode ? "Hide code" : "Show code",
|
|
3901
|
-
children: /* @__PURE__ */ (0,
|
|
3565
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(IconCodePreview, { className: "h-5 w-5", "aria-hidden": true })
|
|
3902
3566
|
}
|
|
3903
3567
|
)
|
|
3904
3568
|
] }),
|
|
3905
|
-
/* @__PURE__ */ (0,
|
|
3569
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("hr", {})
|
|
3906
3570
|
] }),
|
|
3907
|
-
description && /* @__PURE__ */ (0,
|
|
3908
|
-
docs && /* @__PURE__ */ (0,
|
|
3909
|
-
/* @__PURE__ */ (0,
|
|
3571
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: "mb-6 text-sm text-ph-subtle", children: description }),
|
|
3572
|
+
docs && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "mb-6", children: docs }),
|
|
3573
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
|
|
3910
3574
|
"div",
|
|
3911
3575
|
{
|
|
3912
3576
|
className: cn(
|
|
@@ -3914,15 +3578,15 @@ function ShowcaseWrapper({
|
|
|
3914
3578
|
showCode ? "lg:grid lg:grid-cols-[1fr,minmax(360px,420px)]" : "block"
|
|
3915
3579
|
),
|
|
3916
3580
|
children: [
|
|
3917
|
-
/* @__PURE__ */ (0,
|
|
3918
|
-
/* @__PURE__ */ (0,
|
|
3581
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: cn("min-w-0", showCode && "lg:pr-2"), children }),
|
|
3582
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
3919
3583
|
"div",
|
|
3920
3584
|
{
|
|
3921
3585
|
className: cn(
|
|
3922
3586
|
"transition-all duration-300",
|
|
3923
3587
|
showCode ? "block opacity-100" : "hidden opacity-0 lg:hidden"
|
|
3924
3588
|
),
|
|
3925
|
-
children: /* @__PURE__ */ (0,
|
|
3589
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "sticky top-20", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(CodeBlock, { code, filename }) })
|
|
3926
3590
|
}
|
|
3927
3591
|
)
|
|
3928
3592
|
]
|
|
@@ -3972,13 +3636,13 @@ var titleIdMap = {
|
|
|
3972
3636
|
|
|
3973
3637
|
// src/components/ui/CollapsibleSection.tsx
|
|
3974
3638
|
var import_react23 = require("react");
|
|
3975
|
-
var
|
|
3639
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
3976
3640
|
function CollapsibleSection({ title, children, defaultOpen = true, id }) {
|
|
3977
3641
|
const [isOpen, setIsOpen] = (0, import_react23.useState)(defaultOpen);
|
|
3978
3642
|
const generatedId = (0, import_react23.useId)();
|
|
3979
3643
|
const contentId = `${id != null ? id : generatedId}-content`;
|
|
3980
|
-
return /* @__PURE__ */ (0,
|
|
3981
|
-
/* @__PURE__ */ (0,
|
|
3644
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("section", { id, className: "scroll-mt-20", children: [
|
|
3645
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
3982
3646
|
"button",
|
|
3983
3647
|
{
|
|
3984
3648
|
type: "button",
|
|
@@ -3987,8 +3651,8 @@ function CollapsibleSection({ title, children, defaultOpen = true, id }) {
|
|
|
3987
3651
|
"aria-controls": contentId,
|
|
3988
3652
|
className: "mb-6 flex w-full items-center justify-between rounded-lg border border-ph-border bg-ph-muted px-5 py-4 text-left transition hover:bg-ph-muted/80",
|
|
3989
3653
|
children: [
|
|
3990
|
-
/* @__PURE__ */ (0,
|
|
3991
|
-
/* @__PURE__ */ (0,
|
|
3654
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "text-lg font-bold text-ph-ink", children: title }),
|
|
3655
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
3992
3656
|
IconChevronDown,
|
|
3993
3657
|
{
|
|
3994
3658
|
className: cn(
|
|
@@ -4001,7 +3665,7 @@ function CollapsibleSection({ title, children, defaultOpen = true, id }) {
|
|
|
4001
3665
|
]
|
|
4002
3666
|
}
|
|
4003
3667
|
),
|
|
4004
|
-
/* @__PURE__ */ (0,
|
|
3668
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
4005
3669
|
"div",
|
|
4006
3670
|
{
|
|
4007
3671
|
id: contentId,
|
|
@@ -4017,7 +3681,7 @@ function CollapsibleSection({ title, children, defaultOpen = true, id }) {
|
|
|
4017
3681
|
}
|
|
4018
3682
|
|
|
4019
3683
|
// src/components/ui/Typography.tsx
|
|
4020
|
-
var
|
|
3684
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
4021
3685
|
var toneMap2 = {
|
|
4022
3686
|
default: "text-ph-ink",
|
|
4023
3687
|
muted: "text-ph-mutedtext",
|
|
@@ -4046,47 +3710,47 @@ function Display({
|
|
|
4046
3710
|
truncate,
|
|
4047
3711
|
className
|
|
4048
3712
|
}) {
|
|
4049
|
-
return /* @__PURE__ */ (0,
|
|
3713
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("h1", { className: textClass("text-4xl font-extrabold tracking-tight md:text-5xl", tone, weight, truncate, className), children });
|
|
4050
3714
|
}
|
|
4051
3715
|
function H1({ children, tone = "default", weight, truncate, className }) {
|
|
4052
|
-
return /* @__PURE__ */ (0,
|
|
3716
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("h1", { className: textClass("text-3xl font-bold tracking-tight md:text-4xl", tone, weight, truncate, className), children });
|
|
4053
3717
|
}
|
|
4054
3718
|
function H2({ children, tone = "default", weight, truncate, className }) {
|
|
4055
|
-
return /* @__PURE__ */ (0,
|
|
3719
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("h2", { className: textClass("text-2xl font-bold tracking-tight", tone, weight, truncate, className), children });
|
|
4056
3720
|
}
|
|
4057
3721
|
function H3({ children, tone = "default", weight, truncate, className }) {
|
|
4058
|
-
return /* @__PURE__ */ (0,
|
|
3722
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("h3", { className: textClass("text-xl font-semibold", tone, weight, truncate, className), children });
|
|
4059
3723
|
}
|
|
4060
3724
|
function H4({ children, tone = "default", weight, truncate, className }) {
|
|
4061
|
-
return /* @__PURE__ */ (0,
|
|
3725
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("h4", { className: textClass("text-lg font-semibold", tone, weight, truncate, className), children });
|
|
4062
3726
|
}
|
|
4063
3727
|
function H5({ children, tone = "default", weight, truncate, className }) {
|
|
4064
|
-
return /* @__PURE__ */ (0,
|
|
3728
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("h5", { className: textClass("text-base font-semibold", tone, weight, truncate, className), children });
|
|
4065
3729
|
}
|
|
4066
3730
|
function P({ children, tone = "default", weight, truncate, className }) {
|
|
4067
|
-
return /* @__PURE__ */ (0,
|
|
3731
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: textClass("text-base leading-relaxed", tone, weight, truncate, className), children });
|
|
4068
3732
|
}
|
|
4069
3733
|
function Small({ children, tone = "default", weight, truncate, className }) {
|
|
4070
|
-
return /* @__PURE__ */ (0,
|
|
3734
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: textClass("text-sm leading-relaxed", tone, weight, truncate, className), children });
|
|
4071
3735
|
}
|
|
4072
3736
|
function Caption({ children, tone = "muted", weight, truncate, className }) {
|
|
4073
|
-
return /* @__PURE__ */ (0,
|
|
3737
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: textClass("text-[11px] font-medium uppercase tracking-wider", tone, weight, truncate, className), children });
|
|
4074
3738
|
}
|
|
4075
3739
|
function Overline({ children, tone = "muted", weight, truncate, className }) {
|
|
4076
|
-
return /* @__PURE__ */ (0,
|
|
3740
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: textClass("text-[10px] font-bold uppercase tracking-[0.15em]", tone, weight, truncate, className), children });
|
|
4077
3741
|
}
|
|
4078
3742
|
function Lead({ children, tone = "subtle", weight, truncate, className }) {
|
|
4079
|
-
return /* @__PURE__ */ (0,
|
|
3743
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: textClass("text-lg leading-relaxed", tone, weight, truncate, className), children });
|
|
4080
3744
|
}
|
|
4081
3745
|
function Mono({ children, tone = "default", weight, truncate, className }) {
|
|
4082
|
-
return /* @__PURE__ */ (0,
|
|
3746
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("code", { className: textClass("text-sm font-mono leading-relaxed", tone, weight, truncate, className), children });
|
|
4083
3747
|
}
|
|
4084
3748
|
function Label({ children, tone = "default", weight, truncate, className }) {
|
|
4085
|
-
return /* @__PURE__ */ (0,
|
|
3749
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("label", { className: textClass("text-sm font-medium", tone, weight, truncate, className), children });
|
|
4086
3750
|
}
|
|
4087
3751
|
|
|
4088
3752
|
// src/components/ui/Avatar.tsx
|
|
4089
|
-
var
|
|
3753
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
4090
3754
|
var sizeMap5 = {
|
|
4091
3755
|
xs: "h-8 w-8 text-[10px]",
|
|
4092
3756
|
sm: "h-10 w-10 text-xs",
|
|
@@ -4118,8 +3782,8 @@ function Avatar(_a) {
|
|
|
4118
3782
|
"badge",
|
|
4119
3783
|
"className"
|
|
4120
3784
|
]);
|
|
4121
|
-
return /* @__PURE__ */ (0,
|
|
4122
|
-
/* @__PURE__ */ (0,
|
|
3785
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", __spreadProps(__spreadValues({ className: cn("relative inline-flex shrink-0", className) }, props), { children: [
|
|
3786
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
4123
3787
|
"div",
|
|
4124
3788
|
{
|
|
4125
3789
|
className: cn(
|
|
@@ -4130,7 +3794,7 @@ function Avatar(_a) {
|
|
|
4130
3794
|
children: icon || label
|
|
4131
3795
|
}
|
|
4132
3796
|
),
|
|
4133
|
-
status && /* @__PURE__ */ (0,
|
|
3797
|
+
status && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
4134
3798
|
"span",
|
|
4135
3799
|
{
|
|
4136
3800
|
className: cn(
|
|
@@ -4139,7 +3803,7 @@ function Avatar(_a) {
|
|
|
4139
3803
|
)
|
|
4140
3804
|
}
|
|
4141
3805
|
),
|
|
4142
|
-
badge && /* @__PURE__ */ (0,
|
|
3806
|
+
badge && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "absolute -bottom-1 -right-1 flex min-w-[22px] items-center justify-center rounded-full bg-ph-brand px-1.5 py-px text-[10px] font-bold text-white", children: badge })
|
|
4143
3807
|
] }));
|
|
4144
3808
|
}
|
|
4145
3809
|
function AvatarGroup(_a) {
|
|
@@ -4147,9 +3811,9 @@ function AvatarGroup(_a) {
|
|
|
4147
3811
|
const items = Array.isArray(children) ? children : [children];
|
|
4148
3812
|
const visible = max ? items.slice(0, max) : items;
|
|
4149
3813
|
const remaining = max ? items.length - max : 0;
|
|
4150
|
-
return /* @__PURE__ */ (0,
|
|
3814
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", __spreadProps(__spreadValues({ className: cn("-space-x-3 flex rtl:space-x-reverse", className) }, props), { children: [
|
|
4151
3815
|
visible,
|
|
4152
|
-
remaining > 0 && /* @__PURE__ */ (0,
|
|
3816
|
+
remaining > 0 && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
4153
3817
|
Avatar,
|
|
4154
3818
|
{
|
|
4155
3819
|
label: `+${remaining}`,
|
|
@@ -4161,7 +3825,7 @@ function AvatarGroup(_a) {
|
|
|
4161
3825
|
}
|
|
4162
3826
|
|
|
4163
3827
|
// src/components/ui/Progress.tsx
|
|
4164
|
-
var
|
|
3828
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
4165
3829
|
var sizeMap6 = {
|
|
4166
3830
|
sm: "h-1",
|
|
4167
3831
|
md: "h-2",
|
|
@@ -4186,15 +3850,15 @@ function Progress(_a) {
|
|
|
4186
3850
|
"className"
|
|
4187
3851
|
]);
|
|
4188
3852
|
const percentage = Math.min(100, Math.max(0, value / max * 100));
|
|
4189
|
-
return /* @__PURE__ */ (0,
|
|
4190
|
-
(label || showPercentage) && /* @__PURE__ */ (0,
|
|
4191
|
-
label && /* @__PURE__ */ (0,
|
|
4192
|
-
showPercentage && /* @__PURE__ */ (0,
|
|
3853
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", __spreadProps(__spreadValues({ className: cn("w-full", className) }, props), { children: [
|
|
3854
|
+
(label || showPercentage) && /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "mb-1.5 flex justify-between text-sm text-ph-subtle", children: [
|
|
3855
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { children: label }),
|
|
3856
|
+
showPercentage && /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("span", { className: "tabular-nums", children: [
|
|
4193
3857
|
Math.round(percentage),
|
|
4194
3858
|
"%"
|
|
4195
3859
|
] })
|
|
4196
3860
|
] }),
|
|
4197
|
-
/* @__PURE__ */ (0,
|
|
3861
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: cn("ph-progress", sizeMap6[size]), children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
4198
3862
|
"div",
|
|
4199
3863
|
{
|
|
4200
3864
|
className: cn("ph-progress-bar", color),
|
|
@@ -4209,7 +3873,7 @@ function Progress(_a) {
|
|
|
4209
3873
|
}
|
|
4210
3874
|
|
|
4211
3875
|
// src/components/ui/ChatBubble.tsx
|
|
4212
|
-
var
|
|
3876
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
4213
3877
|
function ChatBubble(_a) {
|
|
4214
3878
|
var _b = _a, {
|
|
4215
3879
|
children,
|
|
@@ -4229,7 +3893,7 @@ function ChatBubble(_a) {
|
|
|
4229
3893
|
"className"
|
|
4230
3894
|
]);
|
|
4231
3895
|
const isSelf = variant === "self";
|
|
4232
|
-
return /* @__PURE__ */ (0,
|
|
3896
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
|
|
4233
3897
|
"div",
|
|
4234
3898
|
__spreadProps(__spreadValues({
|
|
4235
3899
|
className: cn(
|
|
@@ -4239,9 +3903,9 @@ function ChatBubble(_a) {
|
|
|
4239
3903
|
)
|
|
4240
3904
|
}, props), {
|
|
4241
3905
|
children: [
|
|
4242
|
-
avatar && /* @__PURE__ */ (0,
|
|
4243
|
-
/* @__PURE__ */ (0,
|
|
4244
|
-
(name || time) && /* @__PURE__ */ (0,
|
|
3906
|
+
avatar && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "shrink-0", children: avatar }),
|
|
3907
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: cn("min-w-0 flex-1", isSelf && "text-right"), children: [
|
|
3908
|
+
(name || time) && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
|
|
4245
3909
|
"header",
|
|
4246
3910
|
{
|
|
4247
3911
|
className: cn(
|
|
@@ -4249,12 +3913,12 @@ function ChatBubble(_a) {
|
|
|
4249
3913
|
isSelf && "flex-row-reverse justify-end"
|
|
4250
3914
|
),
|
|
4251
3915
|
children: [
|
|
4252
|
-
name && /* @__PURE__ */ (0,
|
|
4253
|
-
time && /* @__PURE__ */ (0,
|
|
3916
|
+
name && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "font-semibold text-ph-ink", children: name }),
|
|
3917
|
+
time && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { children: time })
|
|
4254
3918
|
]
|
|
4255
3919
|
}
|
|
4256
3920
|
),
|
|
4257
|
-
/* @__PURE__ */ (0,
|
|
3921
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
4258
3922
|
"div",
|
|
4259
3923
|
{
|
|
4260
3924
|
className: cn(
|
|
@@ -4264,7 +3928,7 @@ function ChatBubble(_a) {
|
|
|
4264
3928
|
children
|
|
4265
3929
|
}
|
|
4266
3930
|
),
|
|
4267
|
-
footer && /* @__PURE__ */ (0,
|
|
3931
|
+
footer && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("footer", { className: "mt-2 text-[11px] text-ph-mutedtext", children: footer })
|
|
4268
3932
|
] })
|
|
4269
3933
|
]
|
|
4270
3934
|
})
|
|
@@ -4272,7 +3936,7 @@ function ChatBubble(_a) {
|
|
|
4272
3936
|
}
|
|
4273
3937
|
|
|
4274
3938
|
// src/components/ui/Terminal.tsx
|
|
4275
|
-
var
|
|
3939
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
4276
3940
|
function Terminal(_a) {
|
|
4277
3941
|
var _b = _a, {
|
|
4278
3942
|
title = "sandbox",
|
|
@@ -4285,7 +3949,7 @@ function Terminal(_a) {
|
|
|
4285
3949
|
"children",
|
|
4286
3950
|
"className"
|
|
4287
3951
|
]);
|
|
4288
|
-
return /* @__PURE__ */ (0,
|
|
3952
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
|
|
4289
3953
|
"div",
|
|
4290
3954
|
__spreadProps(__spreadValues({
|
|
4291
3955
|
className: cn(
|
|
@@ -4294,18 +3958,18 @@ function Terminal(_a) {
|
|
|
4294
3958
|
)
|
|
4295
3959
|
}, props), {
|
|
4296
3960
|
children: [
|
|
4297
|
-
/* @__PURE__ */ (0,
|
|
4298
|
-
/* @__PURE__ */ (0,
|
|
4299
|
-
/* @__PURE__ */ (0,
|
|
4300
|
-
/* @__PURE__ */ (0,
|
|
4301
|
-
title && /* @__PURE__ */ (0,
|
|
3961
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("header", { className: "flex items-center gap-2 border-b border-ph-border bg-ph-muted px-4 py-3", children: [
|
|
3962
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "h-3 w-3 rounded-full bg-red-400" }),
|
|
3963
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "h-3 w-3 rounded-full bg-amber-400" }),
|
|
3964
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "h-3 w-3 rounded-full bg-emerald-400" }),
|
|
3965
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "text-xs font-medium text-ph-mutedtext", children: title })
|
|
4302
3966
|
] }),
|
|
4303
|
-
/* @__PURE__ */ (0,
|
|
3967
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "ph-code rounded-none border-x-0 border-b-0 text-[13px] leading-relaxed", children: children || /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_jsx_runtime47.Fragment, { children: lines == null ? void 0 : lines.map((line, i) => {
|
|
4304
3968
|
const text = typeof line === "string" ? line : line.text;
|
|
4305
3969
|
const color = typeof line === "string" ? void 0 : line.color;
|
|
4306
|
-
return /* @__PURE__ */ (0,
|
|
4307
|
-
/* @__PURE__ */ (0,
|
|
4308
|
-
i < lines.length - 1 && /* @__PURE__ */ (0,
|
|
3970
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("span", { children: [
|
|
3971
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: color || "text-neutral-600", children: text }),
|
|
3972
|
+
i < lines.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("br", {})
|
|
4309
3973
|
] }, i);
|
|
4310
3974
|
}) }) })
|
|
4311
3975
|
]
|
|
@@ -4314,7 +3978,7 @@ function Terminal(_a) {
|
|
|
4314
3978
|
}
|
|
4315
3979
|
|
|
4316
3980
|
// src/components/ui/Indicator.tsx
|
|
4317
|
-
var
|
|
3981
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
4318
3982
|
var positionMap = {
|
|
4319
3983
|
"top-right": "-right-[2px] -top-[2px]",
|
|
4320
3984
|
"top-left": "-left-[2px] -top-[2px]",
|
|
@@ -4337,8 +4001,8 @@ function Indicator(_a) {
|
|
|
4337
4001
|
"dot",
|
|
4338
4002
|
"className"
|
|
4339
4003
|
]);
|
|
4340
|
-
return /* @__PURE__ */ (0,
|
|
4341
|
-
dot ? /* @__PURE__ */ (0,
|
|
4004
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", __spreadProps(__spreadValues({ className: cn("relative inline-flex items-center justify-center", className) }, props), { children: [
|
|
4005
|
+
dot ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
4342
4006
|
"span",
|
|
4343
4007
|
{
|
|
4344
4008
|
className: cn(
|
|
@@ -4347,7 +4011,7 @@ function Indicator(_a) {
|
|
|
4347
4011
|
positionMap[position]
|
|
4348
4012
|
)
|
|
4349
4013
|
}
|
|
4350
|
-
) : badge != null ? /* @__PURE__ */ (0,
|
|
4014
|
+
) : badge != null ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
4351
4015
|
"span",
|
|
4352
4016
|
{
|
|
4353
4017
|
className: cn(
|
|
@@ -4363,7 +4027,7 @@ function Indicator(_a) {
|
|
|
4363
4027
|
}
|
|
4364
4028
|
|
|
4365
4029
|
// src/components/ui/Timeline.tsx
|
|
4366
|
-
var
|
|
4030
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
4367
4031
|
function Timeline(_a) {
|
|
4368
4032
|
var _b = _a, {
|
|
4369
4033
|
events,
|
|
@@ -4374,15 +4038,15 @@ function Timeline(_a) {
|
|
|
4374
4038
|
"alternate",
|
|
4375
4039
|
"className"
|
|
4376
4040
|
]);
|
|
4377
|
-
return /* @__PURE__ */ (0,
|
|
4041
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
4378
4042
|
"ol",
|
|
4379
4043
|
__spreadProps(__spreadValues({
|
|
4380
4044
|
className: cn("relative space-y-8", className)
|
|
4381
4045
|
}, props), {
|
|
4382
4046
|
children: events.map((event, idx) => {
|
|
4383
4047
|
const align = alternate && idx % 2 !== 0 ? "lg:flex-row-reverse" : "";
|
|
4384
|
-
return /* @__PURE__ */ (0,
|
|
4385
|
-
/* @__PURE__ */ (0,
|
|
4048
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("li", { className: cn("relative flex gap-6", align), children: [
|
|
4049
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
4386
4050
|
"div",
|
|
4387
4051
|
{
|
|
4388
4052
|
className: cn(
|
|
@@ -4392,12 +4056,12 @@ function Timeline(_a) {
|
|
|
4392
4056
|
children: event.icon
|
|
4393
4057
|
}
|
|
4394
4058
|
),
|
|
4395
|
-
/* @__PURE__ */ (0,
|
|
4396
|
-
/* @__PURE__ */ (0,
|
|
4397
|
-
/* @__PURE__ */ (0,
|
|
4398
|
-
event.time && /* @__PURE__ */ (0,
|
|
4059
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("article", { className: "flex-1 rounded-xl border border-ph-border bg-ph-surface p-4 shadow-ph", children: [
|
|
4060
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex flex-wrap items-baseline gap-3", children: [
|
|
4061
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)("h4", { className: "text-base font-semibold text-ph-ink", children: event.title }),
|
|
4062
|
+
event.time && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("time", { className: "text-[11px] font-semibold uppercase tracking-wide text-ph-mutedtext", children: event.time })
|
|
4399
4063
|
] }),
|
|
4400
|
-
event.description && /* @__PURE__ */ (0,
|
|
4064
|
+
event.description && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("p", { className: "mt-2 text-sm text-ph-subtle", children: event.description })
|
|
4401
4065
|
] })
|
|
4402
4066
|
] }, event.id);
|
|
4403
4067
|
})
|
|
@@ -4407,7 +4071,7 @@ function Timeline(_a) {
|
|
|
4407
4071
|
|
|
4408
4072
|
// src/components/ui/Banner.tsx
|
|
4409
4073
|
var import_react24 = require("react");
|
|
4410
|
-
var
|
|
4074
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
4411
4075
|
var typeClass = {
|
|
4412
4076
|
info: "ph-banner-info",
|
|
4413
4077
|
success: "ph-banner-success",
|
|
@@ -4435,7 +4099,7 @@ var Banner = (0, import_react24.forwardRef)(function Banner2(_a, ref) {
|
|
|
4435
4099
|
"className",
|
|
4436
4100
|
"children"
|
|
4437
4101
|
]);
|
|
4438
|
-
return /* @__PURE__ */ (0,
|
|
4102
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
4439
4103
|
"div",
|
|
4440
4104
|
__spreadProps(__spreadValues({
|
|
4441
4105
|
ref,
|
|
@@ -4447,11 +4111,11 @@ var Banner = (0, import_react24.forwardRef)(function Banner2(_a, ref) {
|
|
|
4447
4111
|
className
|
|
4448
4112
|
)
|
|
4449
4113
|
}, props), {
|
|
4450
|
-
children: /* @__PURE__ */ (0,
|
|
4114
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "ph-banner__body", children: [
|
|
4451
4115
|
icon,
|
|
4452
|
-
/* @__PURE__ */ (0,
|
|
4453
|
-
action && /* @__PURE__ */ (0,
|
|
4454
|
-
onClose && /* @__PURE__ */ (0,
|
|
4116
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "ph-banner__content", children }),
|
|
4117
|
+
action && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "ph-banner__action", children: action }),
|
|
4118
|
+
onClose && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("button", { type: "button", onClick: onClose, className: "ph-banner__close", "aria-label": "Dismiss", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("path", { d: "M4 4l8 8M12 4l-8 8" }) }) })
|
|
4455
4119
|
] })
|
|
4456
4120
|
})
|
|
4457
4121
|
);
|
|
@@ -4460,7 +4124,7 @@ Banner.displayName = "Banner";
|
|
|
4460
4124
|
|
|
4461
4125
|
// src/components/ui/Dialog.tsx
|
|
4462
4126
|
var import_react25 = require("react");
|
|
4463
|
-
var
|
|
4127
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
4464
4128
|
function Dialog2(_a) {
|
|
4465
4129
|
var _b = _a, {
|
|
4466
4130
|
isOpen: openProp,
|
|
@@ -4495,15 +4159,15 @@ function Dialog2(_a) {
|
|
|
4495
4159
|
}
|
|
4496
4160
|
onClose == null ? void 0 : onClose();
|
|
4497
4161
|
};
|
|
4498
|
-
return /* @__PURE__ */ (0,
|
|
4162
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
4499
4163
|
Modal,
|
|
4500
4164
|
__spreadProps(__spreadValues({
|
|
4501
4165
|
open: isOpen,
|
|
4502
4166
|
onClose,
|
|
4503
4167
|
title,
|
|
4504
|
-
footer: /* @__PURE__ */ (0,
|
|
4505
|
-
/* @__PURE__ */ (0,
|
|
4506
|
-
onConfirm && /* @__PURE__ */ (0,
|
|
4168
|
+
footer: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex justify-end gap-2", children: [
|
|
4169
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Button, __spreadProps(__spreadValues({ variant: "secondary" }, cancelProps), { onClick: onClose, children: cancelText })),
|
|
4170
|
+
onConfirm && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
4507
4171
|
Button,
|
|
4508
4172
|
__spreadProps(__spreadValues({
|
|
4509
4173
|
variant: "primary",
|
|
@@ -4522,7 +4186,7 @@ function Dialog2(_a) {
|
|
|
4522
4186
|
Dialog2.displayName = "Dialog";
|
|
4523
4187
|
|
|
4524
4188
|
// src/components/ui/Divider.tsx
|
|
4525
|
-
var
|
|
4189
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
4526
4190
|
function Divider(_a) {
|
|
4527
4191
|
var _b = _a, {
|
|
4528
4192
|
vertical = false,
|
|
@@ -4537,7 +4201,7 @@ function Divider(_a) {
|
|
|
4537
4201
|
"label",
|
|
4538
4202
|
"className"
|
|
4539
4203
|
]);
|
|
4540
|
-
return /* @__PURE__ */ (0,
|
|
4204
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
4541
4205
|
"div",
|
|
4542
4206
|
__spreadProps(__spreadValues({
|
|
4543
4207
|
role: "separator",
|
|
@@ -4552,7 +4216,7 @@ function Divider(_a) {
|
|
|
4552
4216
|
className
|
|
4553
4217
|
)
|
|
4554
4218
|
}, props), {
|
|
4555
|
-
children: label && /* @__PURE__ */ (0,
|
|
4219
|
+
children: label && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "ph-divider__label", children: label })
|
|
4556
4220
|
})
|
|
4557
4221
|
);
|
|
4558
4222
|
}
|
|
@@ -4560,7 +4224,7 @@ Divider.displayName = "Divider";
|
|
|
4560
4224
|
|
|
4561
4225
|
// src/components/ui/Tag.tsx
|
|
4562
4226
|
var import_react26 = require("react");
|
|
4563
|
-
var
|
|
4227
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
4564
4228
|
var typeClass2 = {
|
|
4565
4229
|
default: "ph-tag-default",
|
|
4566
4230
|
primary: "ph-tag-primary",
|
|
@@ -4589,7 +4253,7 @@ var Tag = (0, import_react26.forwardRef)(function Tag2(_a, ref) {
|
|
|
4589
4253
|
"className",
|
|
4590
4254
|
"children"
|
|
4591
4255
|
]);
|
|
4592
|
-
return /* @__PURE__ */ (0,
|
|
4256
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
|
|
4593
4257
|
"div",
|
|
4594
4258
|
__spreadProps(__spreadValues({
|
|
4595
4259
|
ref,
|
|
@@ -4601,9 +4265,9 @@ var Tag = (0, import_react26.forwardRef)(function Tag2(_a, ref) {
|
|
|
4601
4265
|
)
|
|
4602
4266
|
}, props), {
|
|
4603
4267
|
children: [
|
|
4604
|
-
icon && /* @__PURE__ */ (0,
|
|
4605
|
-
/* @__PURE__ */ (0,
|
|
4606
|
-
closable && /* @__PURE__ */ (0,
|
|
4268
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "ph-tag__icon", children: icon }),
|
|
4269
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "ph-tag__text", children }),
|
|
4270
|
+
closable && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
4607
4271
|
"button",
|
|
4608
4272
|
{
|
|
4609
4273
|
type: "button",
|
|
@@ -4613,7 +4277,7 @@ var Tag = (0, import_react26.forwardRef)(function Tag2(_a, ref) {
|
|
|
4613
4277
|
},
|
|
4614
4278
|
className: "ph-tag__close",
|
|
4615
4279
|
"aria-label": "Remove",
|
|
4616
|
-
children: /* @__PURE__ */ (0,
|
|
4280
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("path", { d: "M3 3l6 6M9 3l-6 6" }) })
|
|
4617
4281
|
}
|
|
4618
4282
|
)
|
|
4619
4283
|
]
|
|
@@ -4623,7 +4287,7 @@ var Tag = (0, import_react26.forwardRef)(function Tag2(_a, ref) {
|
|
|
4623
4287
|
Tag.displayName = "Tag";
|
|
4624
4288
|
|
|
4625
4289
|
// src/components/ui/ProgressCircle.tsx
|
|
4626
|
-
var
|
|
4290
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
4627
4291
|
function ProgressCircle(_a) {
|
|
4628
4292
|
var _b = _a, {
|
|
4629
4293
|
progress,
|
|
@@ -4642,7 +4306,7 @@ function ProgressCircle(_a) {
|
|
|
4642
4306
|
const radius = (size - stroke) / 2;
|
|
4643
4307
|
const circumference = 2 * Math.PI * radius;
|
|
4644
4308
|
const offset = circumference - Math.min(1, Math.max(0, progress)) * circumference;
|
|
4645
|
-
return /* @__PURE__ */ (0,
|
|
4309
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
|
|
4646
4310
|
"span",
|
|
4647
4311
|
__spreadProps(__spreadValues({
|
|
4648
4312
|
className: cn("ph-progress-circle", className),
|
|
@@ -4653,8 +4317,8 @@ function ProgressCircle(_a) {
|
|
|
4653
4317
|
"aria-valuemax": 100
|
|
4654
4318
|
}, props), {
|
|
4655
4319
|
children: [
|
|
4656
|
-
/* @__PURE__ */ (0,
|
|
4657
|
-
/* @__PURE__ */ (0,
|
|
4320
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("svg", { width: size, height: size, children: [
|
|
4321
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
4658
4322
|
"circle",
|
|
4659
4323
|
{
|
|
4660
4324
|
cx: size / 2,
|
|
@@ -4666,7 +4330,7 @@ function ProgressCircle(_a) {
|
|
|
4666
4330
|
opacity: 0.15
|
|
4667
4331
|
}
|
|
4668
4332
|
),
|
|
4669
|
-
/* @__PURE__ */ (0,
|
|
4333
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
4670
4334
|
"circle",
|
|
4671
4335
|
{
|
|
4672
4336
|
cx: size / 2,
|
|
@@ -4683,7 +4347,7 @@ function ProgressCircle(_a) {
|
|
|
4683
4347
|
}
|
|
4684
4348
|
)
|
|
4685
4349
|
] }),
|
|
4686
|
-
children && /* @__PURE__ */ (0,
|
|
4350
|
+
children && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "ph-progress-circle__content", children })
|
|
4687
4351
|
]
|
|
4688
4352
|
})
|
|
4689
4353
|
);
|
|
@@ -4692,7 +4356,7 @@ ProgressCircle.displayName = "ProgressCircle";
|
|
|
4692
4356
|
|
|
4693
4357
|
// src/components/ui/Row.tsx
|
|
4694
4358
|
var import_react27 = require("react");
|
|
4695
|
-
var
|
|
4359
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
4696
4360
|
var Row = (0, import_react27.forwardRef)(function Row2(_a, ref) {
|
|
4697
4361
|
var _b = _a, {
|
|
4698
4362
|
icon,
|
|
@@ -4714,7 +4378,7 @@ var Row = (0, import_react27.forwardRef)(function Row2(_a, ref) {
|
|
|
4714
4378
|
"children"
|
|
4715
4379
|
]);
|
|
4716
4380
|
const symbolic = children === null || children === void 0 || children === false;
|
|
4717
|
-
return /* @__PURE__ */ (0,
|
|
4381
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
4718
4382
|
"div",
|
|
4719
4383
|
__spreadProps(__spreadValues({
|
|
4720
4384
|
ref,
|
|
@@ -4729,10 +4393,10 @@ var Row = (0, import_react27.forwardRef)(function Row2(_a, ref) {
|
|
|
4729
4393
|
className
|
|
4730
4394
|
)
|
|
4731
4395
|
}, props), {
|
|
4732
|
-
children: /* @__PURE__ */ (0,
|
|
4733
|
-
icon && /* @__PURE__ */ (0,
|
|
4734
|
-
!symbolic && /* @__PURE__ */ (0,
|
|
4735
|
-
sideIcon && /* @__PURE__ */ (0,
|
|
4396
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "ph-row__main", children: [
|
|
4397
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "ph-row__icon", children: icon }),
|
|
4398
|
+
!symbolic && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "ph-row__content", children }),
|
|
4399
|
+
sideIcon && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "ph-row__side-icon", children: sideIcon })
|
|
4736
4400
|
] })
|
|
4737
4401
|
})
|
|
4738
4402
|
);
|
|
@@ -4740,22 +4404,22 @@ var Row = (0, import_react27.forwardRef)(function Row2(_a, ref) {
|
|
|
4740
4404
|
Row.displayName = "Row";
|
|
4741
4405
|
|
|
4742
4406
|
// src/components/ui/Widget.tsx
|
|
4743
|
-
var
|
|
4407
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
4744
4408
|
function Widget({ title, onClose, actions, children, className }) {
|
|
4745
|
-
return /* @__PURE__ */ (0,
|
|
4746
|
-
/* @__PURE__ */ (0,
|
|
4747
|
-
/* @__PURE__ */ (0,
|
|
4409
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: cn("ph-widget", className), children: [
|
|
4410
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "ph-widget__header", children: [
|
|
4411
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "ph-widget__title", children: title }),
|
|
4748
4412
|
actions,
|
|
4749
|
-
onClose && /* @__PURE__ */ (0,
|
|
4413
|
+
onClose && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("button", { type: "button", onClick: onClose, className: "ph-widget__close", "aria-label": "Close", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("path", { d: "M3 3l8 8M11 3l-8 8" }) }) })
|
|
4750
4414
|
] }),
|
|
4751
|
-
/* @__PURE__ */ (0,
|
|
4415
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "ph-widget__content", children })
|
|
4752
4416
|
] });
|
|
4753
4417
|
}
|
|
4754
4418
|
Widget.displayName = "Widget";
|
|
4755
4419
|
|
|
4756
4420
|
// src/components/ui/Lettermark.tsx
|
|
4757
4421
|
var import_react28 = require("react");
|
|
4758
|
-
var
|
|
4422
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
4759
4423
|
var Lettermark = (0, import_react28.forwardRef)(function Lettermark2(_a, ref) {
|
|
4760
4424
|
var _b = _a, {
|
|
4761
4425
|
name,
|
|
@@ -4773,7 +4437,7 @@ var Lettermark = (0, import_react28.forwardRef)(function Lettermark2(_a, ref) {
|
|
|
4773
4437
|
"className"
|
|
4774
4438
|
]);
|
|
4775
4439
|
const letter = name ? typeof name === "number" ? String(Math.floor(name)) : String.fromCodePoint(name.codePointAt(0)).toLocaleUpperCase() : "?";
|
|
4776
|
-
return /* @__PURE__ */ (0,
|
|
4440
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
4777
4441
|
"div",
|
|
4778
4442
|
__spreadProps(__spreadValues({
|
|
4779
4443
|
ref,
|
|
@@ -4795,7 +4459,7 @@ var Lettermark = (0, import_react28.forwardRef)(function Lettermark2(_a, ref) {
|
|
|
4795
4459
|
Lettermark.displayName = "Lettermark";
|
|
4796
4460
|
|
|
4797
4461
|
// src/components/ui/Splotch.tsx
|
|
4798
|
-
var
|
|
4462
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
4799
4463
|
var colorMap = {
|
|
4800
4464
|
purple: "ph-splotch--purple",
|
|
4801
4465
|
blue: "ph-splotch--blue",
|
|
@@ -4808,13 +4472,13 @@ var colorMap = {
|
|
|
4808
4472
|
};
|
|
4809
4473
|
function Splotch(_a) {
|
|
4810
4474
|
var _b = _a, { color, className } = _b, props = __objRest(_b, ["color", "className"]);
|
|
4811
|
-
return /* @__PURE__ */ (0,
|
|
4475
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
4812
4476
|
"div",
|
|
4813
4477
|
__spreadProps(__spreadValues({
|
|
4814
4478
|
className: cn("ph-splotch", colorMap[color], className),
|
|
4815
4479
|
"aria-hidden": "true"
|
|
4816
4480
|
}, props), {
|
|
4817
|
-
children: /* @__PURE__ */ (0,
|
|
4481
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "ph-splotch__paint" })
|
|
4818
4482
|
})
|
|
4819
4483
|
);
|
|
4820
4484
|
}
|
|
@@ -4822,7 +4486,7 @@ Splotch.displayName = "Splotch";
|
|
|
4822
4486
|
|
|
4823
4487
|
// src/components/ui/Popover.tsx
|
|
4824
4488
|
var import_react29 = require("react");
|
|
4825
|
-
var
|
|
4489
|
+
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
4826
4490
|
function Popover(_a) {
|
|
4827
4491
|
var _b = _a, {
|
|
4828
4492
|
trigger,
|
|
@@ -4859,8 +4523,8 @@ function Popover(_a) {
|
|
|
4859
4523
|
document.addEventListener("mousedown", handleClick);
|
|
4860
4524
|
return () => document.removeEventListener("mousedown", handleClick);
|
|
4861
4525
|
}, [isOpen, setOpen]);
|
|
4862
|
-
return /* @__PURE__ */ (0,
|
|
4863
|
-
/* @__PURE__ */ (0,
|
|
4526
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", __spreadProps(__spreadValues({ className: cn("ph-popover relative inline-flex", className) }, props), { children: [
|
|
4527
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
4864
4528
|
"div",
|
|
4865
4529
|
{
|
|
4866
4530
|
ref: triggerRef,
|
|
@@ -4869,7 +4533,7 @@ function Popover(_a) {
|
|
|
4869
4533
|
children: trigger
|
|
4870
4534
|
}
|
|
4871
4535
|
),
|
|
4872
|
-
isOpen && /* @__PURE__ */ (0,
|
|
4536
|
+
isOpen && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
4873
4537
|
"div",
|
|
4874
4538
|
{
|
|
4875
4539
|
ref: panelRef,
|
|
@@ -4888,10 +4552,10 @@ function Popover(_a) {
|
|
|
4888
4552
|
Popover.displayName = "Popover";
|
|
4889
4553
|
|
|
4890
4554
|
// src/components/ui/LoadingBar.tsx
|
|
4891
|
-
var
|
|
4555
|
+
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
4892
4556
|
function LoadingBar(_a) {
|
|
4893
4557
|
var _b = _a, { active = true, className } = _b, props = __objRest(_b, ["active", "className"]);
|
|
4894
|
-
return /* @__PURE__ */ (0,
|
|
4558
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
4895
4559
|
"div",
|
|
4896
4560
|
__spreadProps(__spreadValues({
|
|
4897
4561
|
className: cn(
|
|
@@ -4902,7 +4566,7 @@ function LoadingBar(_a) {
|
|
|
4902
4566
|
role: "progressbar",
|
|
4903
4567
|
"aria-label": "Loading"
|
|
4904
4568
|
}, props), {
|
|
4905
|
-
children: /* @__PURE__ */ (0,
|
|
4569
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "ph-loading-bar__fill" })
|
|
4906
4570
|
})
|
|
4907
4571
|
);
|
|
4908
4572
|
}
|
|
@@ -4910,7 +4574,7 @@ LoadingBar.displayName = "LoadingBar";
|
|
|
4910
4574
|
|
|
4911
4575
|
// src/components/ui/Link.tsx
|
|
4912
4576
|
var import_react30 = require("react");
|
|
4913
|
-
var
|
|
4577
|
+
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
4914
4578
|
var Link = (0, import_react30.forwardRef)(function Link2(_a, ref) {
|
|
4915
4579
|
var _b = _a, {
|
|
4916
4580
|
className,
|
|
@@ -4921,7 +4585,7 @@ var Link = (0, import_react30.forwardRef)(function Link2(_a, ref) {
|
|
|
4921
4585
|
"disabled",
|
|
4922
4586
|
"children"
|
|
4923
4587
|
]);
|
|
4924
|
-
return /* @__PURE__ */ (0,
|
|
4588
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
4925
4589
|
"a",
|
|
4926
4590
|
__spreadProps(__spreadValues({
|
|
4927
4591
|
ref,
|
|
@@ -4940,10 +4604,10 @@ var Link = (0, import_react30.forwardRef)(function Link2(_a, ref) {
|
|
|
4940
4604
|
Link.displayName = "Link";
|
|
4941
4605
|
|
|
4942
4606
|
// src/components/ui/Spinner.tsx
|
|
4943
|
-
var
|
|
4607
|
+
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
4944
4608
|
function Spinner(_a) {
|
|
4945
4609
|
var _b = _a, { size = "sm", textColored = false, className } = _b, props = __objRest(_b, ["size", "textColored", "className"]);
|
|
4946
|
-
return /* @__PURE__ */ (0,
|
|
4610
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
4947
4611
|
"span",
|
|
4948
4612
|
__spreadProps(__spreadValues({
|
|
4949
4613
|
className: cn(
|
|
@@ -4955,9 +4619,9 @@ function Spinner(_a) {
|
|
|
4955
4619
|
role: "status",
|
|
4956
4620
|
"aria-label": "Loading"
|
|
4957
4621
|
}, props), {
|
|
4958
|
-
children: /* @__PURE__ */ (0,
|
|
4959
|
-
/* @__PURE__ */ (0,
|
|
4960
|
-
/* @__PURE__ */ (0,
|
|
4622
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: "ph-spinner__svg", children: [
|
|
4623
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("circle", { cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "3", opacity: 0.2 }),
|
|
4624
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("path", { d: "M12 2a10 10 0 0 1 10 10", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round" })
|
|
4961
4625
|
] })
|
|
4962
4626
|
})
|
|
4963
4627
|
);
|
|
@@ -4966,7 +4630,7 @@ Spinner.displayName = "Spinner";
|
|
|
4966
4630
|
|
|
4967
4631
|
// src/components/ui/Snack.tsx
|
|
4968
4632
|
var import_react31 = require("react");
|
|
4969
|
-
var
|
|
4633
|
+
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
4970
4634
|
var Snack = (0, import_react31.forwardRef)(function Snack2(_a, ref) {
|
|
4971
4635
|
var _b = _a, {
|
|
4972
4636
|
type = "regular",
|
|
@@ -4981,7 +4645,7 @@ var Snack = (0, import_react31.forwardRef)(function Snack2(_a, ref) {
|
|
|
4981
4645
|
"className",
|
|
4982
4646
|
"children"
|
|
4983
4647
|
]);
|
|
4984
|
-
return /* @__PURE__ */ (0,
|
|
4648
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
|
|
4985
4649
|
"span",
|
|
4986
4650
|
__spreadProps(__spreadValues({
|
|
4987
4651
|
ref,
|
|
@@ -4994,8 +4658,8 @@ var Snack = (0, import_react31.forwardRef)(function Snack2(_a, ref) {
|
|
|
4994
4658
|
title: typeof children === "string" ? children : void 0
|
|
4995
4659
|
}, props), {
|
|
4996
4660
|
children: [
|
|
4997
|
-
/* @__PURE__ */ (0,
|
|
4998
|
-
onClose && /* @__PURE__ */ (0,
|
|
4661
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "ph-snack__text", children }),
|
|
4662
|
+
onClose && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
4999
4663
|
"button",
|
|
5000
4664
|
{
|
|
5001
4665
|
type: "button",
|
|
@@ -5005,7 +4669,7 @@ var Snack = (0, import_react31.forwardRef)(function Snack2(_a, ref) {
|
|
|
5005
4669
|
},
|
|
5006
4670
|
className: "ph-snack__close",
|
|
5007
4671
|
"aria-label": "Remove",
|
|
5008
|
-
children: /* @__PURE__ */ (0,
|
|
4672
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("path", { d: "M3 3l6 6M9 3l-6 6" }) })
|
|
5009
4673
|
}
|
|
5010
4674
|
)
|
|
5011
4675
|
]
|
|
@@ -5016,7 +4680,7 @@ Snack.displayName = "Snack";
|
|
|
5016
4680
|
|
|
5017
4681
|
// src/components/ui/Combobox.tsx
|
|
5018
4682
|
var import_react32 = require("react");
|
|
5019
|
-
var
|
|
4683
|
+
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
5020
4684
|
function Combobox({
|
|
5021
4685
|
options,
|
|
5022
4686
|
value = [],
|
|
@@ -5047,26 +4711,26 @@ function Combobox({
|
|
|
5047
4711
|
document.addEventListener("mousedown", handle);
|
|
5048
4712
|
return () => document.removeEventListener("mousedown", handle);
|
|
5049
4713
|
}, [open]);
|
|
5050
|
-
return /* @__PURE__ */ (0,
|
|
5051
|
-
/* @__PURE__ */ (0,
|
|
5052
|
-
value.length > 0 && /* @__PURE__ */ (0,
|
|
4714
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { ref: containerRef, className: cn("ph-combobox relative", className), children: [
|
|
4715
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "ph-combobox__input-wrap", children: [
|
|
4716
|
+
value.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "ph-combobox__chips", children: value.map((v) => {
|
|
5053
4717
|
var _a, _b;
|
|
5054
4718
|
const opt = options.find((o) => o.value === v);
|
|
5055
|
-
return /* @__PURE__ */ (0,
|
|
4719
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("span", { className: "ph-combobox__chip", children: [
|
|
5056
4720
|
(_a = opt == null ? void 0 : opt.label) != null ? _a : v,
|
|
5057
|
-
/* @__PURE__ */ (0,
|
|
4721
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
5058
4722
|
"button",
|
|
5059
4723
|
{
|
|
5060
4724
|
type: "button",
|
|
5061
4725
|
onClick: () => toggle(v),
|
|
5062
4726
|
className: "ph-combobox__chip-remove",
|
|
5063
4727
|
"aria-label": `Remove ${(_b = opt == null ? void 0 : opt.label) != null ? _b : v}`,
|
|
5064
|
-
children: /* @__PURE__ */ (0,
|
|
4728
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("path", { d: "M2 2l6 6M8 2l-6 6" }) })
|
|
5065
4729
|
}
|
|
5066
4730
|
)
|
|
5067
4731
|
] }, v);
|
|
5068
4732
|
}) }),
|
|
5069
|
-
/* @__PURE__ */ (0,
|
|
4733
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
5070
4734
|
"input",
|
|
5071
4735
|
{
|
|
5072
4736
|
ref: inputRef,
|
|
@@ -5083,7 +4747,7 @@ function Combobox({
|
|
|
5083
4747
|
}
|
|
5084
4748
|
)
|
|
5085
4749
|
] }),
|
|
5086
|
-
open && filtered.length > 0 && /* @__PURE__ */ (0,
|
|
4750
|
+
open && filtered.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "ph-combobox__dropdown", children: filtered.map((opt) => /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
|
|
5087
4751
|
"button",
|
|
5088
4752
|
{
|
|
5089
4753
|
type: "button",
|
|
@@ -5093,8 +4757,8 @@ function Combobox({
|
|
|
5093
4757
|
selectedSet.has(opt.value) && "ph-combobox__option--selected"
|
|
5094
4758
|
),
|
|
5095
4759
|
children: [
|
|
5096
|
-
selectedSet.has(opt.value) && /* @__PURE__ */ (0,
|
|
5097
|
-
/* @__PURE__ */ (0,
|
|
4760
|
+
selectedSet.has(opt.value) && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("path", { d: "M2.5 6l2.5 2.5 4.5-5" }) }),
|
|
4761
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { children: opt.label })
|
|
5098
4762
|
]
|
|
5099
4763
|
},
|
|
5100
4764
|
opt.value
|
|
@@ -5105,7 +4769,7 @@ Combobox.displayName = "Combobox";
|
|
|
5105
4769
|
|
|
5106
4770
|
// src/components/ui/Autocomplete.tsx
|
|
5107
4771
|
var import_react33 = require("react");
|
|
5108
|
-
var
|
|
4772
|
+
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
5109
4773
|
function Autocomplete(_a) {
|
|
5110
4774
|
var _b = _a, {
|
|
5111
4775
|
options,
|
|
@@ -5176,8 +4840,8 @@ function Autocomplete(_a) {
|
|
|
5176
4840
|
el == null ? void 0 : el.scrollIntoView({ block: "nearest" });
|
|
5177
4841
|
}
|
|
5178
4842
|
}, [activeIndex]);
|
|
5179
|
-
return /* @__PURE__ */ (0,
|
|
5180
|
-
/* @__PURE__ */ (0,
|
|
4843
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { ref: containerRef, className: cn("ph-autocomplete relative", className), children: [
|
|
4844
|
+
/* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
5181
4845
|
"input",
|
|
5182
4846
|
__spreadValues({
|
|
5183
4847
|
ref: inputRef,
|
|
@@ -5193,7 +4857,7 @@ function Autocomplete(_a) {
|
|
|
5193
4857
|
className: "ph-input w-full"
|
|
5194
4858
|
}, inputProps)
|
|
5195
4859
|
),
|
|
5196
|
-
open && filtered.length > 0 && /* @__PURE__ */ (0,
|
|
4860
|
+
open && filtered.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { ref: listRef, className: "ph-autocomplete__dropdown", role: "listbox", children: filtered.map((opt, i) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
5197
4861
|
"button",
|
|
5198
4862
|
{
|
|
5199
4863
|
type: "button",
|
|
@@ -5215,7 +4879,7 @@ Autocomplete.displayName = "Autocomplete";
|
|
|
5215
4879
|
|
|
5216
4880
|
// src/components/ui/ContextMenu.tsx
|
|
5217
4881
|
var import_react34 = require("react");
|
|
5218
|
-
var
|
|
4882
|
+
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
5219
4883
|
function ContextMenu(_a) {
|
|
5220
4884
|
var _b = _a, { items, children, className } = _b, props = __objRest(_b, ["items", "children", "className"]);
|
|
5221
4885
|
const [open, setOpen] = (0, import_react34.useState)(false);
|
|
@@ -5238,7 +4902,7 @@ function ContextMenu(_a) {
|
|
|
5238
4902
|
document.removeEventListener("keydown", handleKey);
|
|
5239
4903
|
};
|
|
5240
4904
|
}, [open]);
|
|
5241
|
-
return /* @__PURE__ */ (0,
|
|
4905
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
|
|
5242
4906
|
"div",
|
|
5243
4907
|
__spreadProps(__spreadValues({
|
|
5244
4908
|
className: cn("ph-context-menu", className),
|
|
@@ -5250,14 +4914,14 @@ function ContextMenu(_a) {
|
|
|
5250
4914
|
}, props), {
|
|
5251
4915
|
children: [
|
|
5252
4916
|
children,
|
|
5253
|
-
open && /* @__PURE__ */ (0,
|
|
4917
|
+
open && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
5254
4918
|
"div",
|
|
5255
4919
|
{
|
|
5256
4920
|
ref: menuRef,
|
|
5257
4921
|
className: "ph-context-menu__panel",
|
|
5258
4922
|
style: { left: pos.x, top: pos.y },
|
|
5259
4923
|
children: items.map(
|
|
5260
|
-
(item, i) => item.separator ? /* @__PURE__ */ (0,
|
|
4924
|
+
(item, i) => item.separator ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "ph-context-menu__separator" }, i) : /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
|
|
5261
4925
|
"button",
|
|
5262
4926
|
{
|
|
5263
4927
|
type: "button",
|
|
@@ -5269,8 +4933,8 @@ function ContextMenu(_a) {
|
|
|
5269
4933
|
},
|
|
5270
4934
|
className: "ph-context-menu__item",
|
|
5271
4935
|
children: [
|
|
5272
|
-
item.icon && /* @__PURE__ */ (0,
|
|
5273
|
-
/* @__PURE__ */ (0,
|
|
4936
|
+
item.icon && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "ph-context-menu__icon", children: item.icon }),
|
|
4937
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { children: item.label })
|
|
5274
4938
|
]
|
|
5275
4939
|
},
|
|
5276
4940
|
i
|
|
@@ -5286,7 +4950,7 @@ ContextMenu.displayName = "ContextMenu";
|
|
|
5286
4950
|
|
|
5287
4951
|
// src/components/ui/Resizable.tsx
|
|
5288
4952
|
var import_react35 = require("react");
|
|
5289
|
-
var
|
|
4953
|
+
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
5290
4954
|
function Resizable(_a) {
|
|
5291
4955
|
var _b = _a, {
|
|
5292
4956
|
left,
|
|
@@ -5326,22 +4990,22 @@ function Resizable(_a) {
|
|
|
5326
4990
|
document.addEventListener("mousemove", handleMove);
|
|
5327
4991
|
document.addEventListener("mouseup", handleUp);
|
|
5328
4992
|
}, [leftPercent, minLeftWidth, minRightWidth]);
|
|
5329
|
-
return /* @__PURE__ */ (0,
|
|
4993
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
|
|
5330
4994
|
"div",
|
|
5331
4995
|
__spreadProps(__spreadValues({
|
|
5332
4996
|
ref: containerRef,
|
|
5333
4997
|
className: cn("ph-resizable flex overflow-hidden", className)
|
|
5334
4998
|
}, props), {
|
|
5335
4999
|
children: [
|
|
5336
|
-
/* @__PURE__ */ (0,
|
|
5337
|
-
/* @__PURE__ */ (0,
|
|
5000
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "ph-resizable__left overflow-auto", style: { width: `${leftPercent}%` }, children: left }),
|
|
5001
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
5338
5002
|
"div",
|
|
5339
5003
|
{
|
|
5340
5004
|
className: "ph-resizable__handle cursor-col-resize shrink-0",
|
|
5341
5005
|
onMouseDown: handleMouseDown
|
|
5342
5006
|
}
|
|
5343
5007
|
),
|
|
5344
|
-
/* @__PURE__ */ (0,
|
|
5008
|
+
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "ph-resizable__right flex-1 overflow-auto", children: right })
|
|
5345
5009
|
]
|
|
5346
5010
|
})
|
|
5347
5011
|
);
|
|
@@ -5350,7 +5014,7 @@ Resizable.displayName = "Resizable";
|
|
|
5350
5014
|
|
|
5351
5015
|
// src/components/ui/ScrollArea.tsx
|
|
5352
5016
|
var import_react36 = require("react");
|
|
5353
|
-
var
|
|
5017
|
+
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
5354
5018
|
function ScrollArea(_a) {
|
|
5355
5019
|
var _b = _a, {
|
|
5356
5020
|
children,
|
|
@@ -5380,7 +5044,7 @@ function ScrollArea(_a) {
|
|
|
5380
5044
|
ro.disconnect();
|
|
5381
5045
|
};
|
|
5382
5046
|
}, []);
|
|
5383
|
-
return /* @__PURE__ */ (0,
|
|
5047
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
|
|
5384
5048
|
"div",
|
|
5385
5049
|
__spreadProps(__spreadValues({
|
|
5386
5050
|
className: cn(
|
|
@@ -5391,9 +5055,9 @@ function ScrollArea(_a) {
|
|
|
5391
5055
|
)
|
|
5392
5056
|
}, props), {
|
|
5393
5057
|
children: [
|
|
5394
|
-
showTop && /* @__PURE__ */ (0,
|
|
5395
|
-
/* @__PURE__ */ (0,
|
|
5396
|
-
showBottom && /* @__PURE__ */ (0,
|
|
5058
|
+
showTop && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "ph-scroll-area__shadow-top" }),
|
|
5059
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { ref: viewportRef, className: "ph-scroll-area__viewport overflow-y-auto overscroll-contain", children }),
|
|
5060
|
+
showBottom && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "ph-scroll-area__shadow-bottom" })
|
|
5397
5061
|
]
|
|
5398
5062
|
})
|
|
5399
5063
|
);
|
|
@@ -5402,7 +5066,7 @@ ScrollArea.displayName = "ScrollArea";
|
|
|
5402
5066
|
|
|
5403
5067
|
// src/components/ui/NumberField.tsx
|
|
5404
5068
|
var import_react37 = require("react");
|
|
5405
|
-
var
|
|
5069
|
+
var import_jsx_runtime69 = require("react/jsx-runtime");
|
|
5406
5070
|
function NumberField(_a) {
|
|
5407
5071
|
var _b = _a, {
|
|
5408
5072
|
value: controlledValue,
|
|
@@ -5432,10 +5096,10 @@ function NumberField(_a) {
|
|
|
5432
5096
|
setInternal(clamped);
|
|
5433
5097
|
onChange == null ? void 0 : onChange(clamped);
|
|
5434
5098
|
};
|
|
5435
|
-
return /* @__PURE__ */ (0,
|
|
5436
|
-
label && /* @__PURE__ */ (0,
|
|
5437
|
-
/* @__PURE__ */ (0,
|
|
5438
|
-
/* @__PURE__ */ (0,
|
|
5099
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: cn("ph-number-field", className), children: [
|
|
5100
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("label", { className: "ph-label", children: label }),
|
|
5101
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "ph-number-field__control", children: [
|
|
5102
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
5439
5103
|
"button",
|
|
5440
5104
|
{
|
|
5441
5105
|
type: "button",
|
|
@@ -5443,10 +5107,10 @@ function NumberField(_a) {
|
|
|
5443
5107
|
onClick: () => set(value - step),
|
|
5444
5108
|
className: "ph-number-field__btn",
|
|
5445
5109
|
"aria-label": "Decrease",
|
|
5446
|
-
children: /* @__PURE__ */ (0,
|
|
5110
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("svg", { width: "12", height: "2", viewBox: "0 0 12 2", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("rect", { y: "0", width: "12", height: "2", rx: "1" }) })
|
|
5447
5111
|
}
|
|
5448
5112
|
),
|
|
5449
|
-
/* @__PURE__ */ (0,
|
|
5113
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
5450
5114
|
"input",
|
|
5451
5115
|
__spreadValues({
|
|
5452
5116
|
type: "number",
|
|
@@ -5459,7 +5123,7 @@ function NumberField(_a) {
|
|
|
5459
5123
|
className: "ph-number-field__input"
|
|
5460
5124
|
}, inputProps)
|
|
5461
5125
|
),
|
|
5462
|
-
/* @__PURE__ */ (0,
|
|
5126
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
5463
5127
|
"button",
|
|
5464
5128
|
{
|
|
5465
5129
|
type: "button",
|
|
@@ -5467,7 +5131,7 @@ function NumberField(_a) {
|
|
|
5467
5131
|
onClick: () => set(value + step),
|
|
5468
5132
|
className: "ph-number-field__btn",
|
|
5469
5133
|
"aria-label": "Increase",
|
|
5470
|
-
children: /* @__PURE__ */ (0,
|
|
5134
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("path", { d: "M6 2v8M2 6h8" }) })
|
|
5471
5135
|
}
|
|
5472
5136
|
)
|
|
5473
5137
|
] })
|
|
@@ -5476,24 +5140,24 @@ function NumberField(_a) {
|
|
|
5476
5140
|
NumberField.displayName = "NumberField";
|
|
5477
5141
|
|
|
5478
5142
|
// src/components/ui/InputGroup.tsx
|
|
5479
|
-
var
|
|
5143
|
+
var import_jsx_runtime70 = require("react/jsx-runtime");
|
|
5480
5144
|
function InputGroup(_a) {
|
|
5481
5145
|
var _b = _a, { children, className } = _b, props = __objRest(_b, ["children", "className"]);
|
|
5482
|
-
return /* @__PURE__ */ (0,
|
|
5146
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", __spreadProps(__spreadValues({ className: cn("ph-input-group", className) }, props), { children }));
|
|
5483
5147
|
}
|
|
5484
5148
|
InputGroup.displayName = "InputGroup";
|
|
5485
5149
|
|
|
5486
5150
|
// src/components/ui/ButtonGroup.tsx
|
|
5487
|
-
var
|
|
5151
|
+
var import_jsx_runtime71 = require("react/jsx-runtime");
|
|
5488
5152
|
function ButtonGroup(_a) {
|
|
5489
5153
|
var _b = _a, { children, className } = _b, props = __objRest(_b, ["children", "className"]);
|
|
5490
|
-
return /* @__PURE__ */ (0,
|
|
5154
|
+
return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", __spreadProps(__spreadValues({ className: cn("ph-btn-group", className) }, props), { children }));
|
|
5491
5155
|
}
|
|
5492
5156
|
ButtonGroup.displayName = "ButtonGroup";
|
|
5493
5157
|
|
|
5494
5158
|
// src/components/ui/Toggle.tsx
|
|
5495
5159
|
var import_react38 = require("react");
|
|
5496
|
-
var
|
|
5160
|
+
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
5497
5161
|
var ToggleButton = (0, import_react38.forwardRef)(function ToggleButton2(_a, ref) {
|
|
5498
5162
|
var _b = _a, {
|
|
5499
5163
|
pressed = false,
|
|
@@ -5508,7 +5172,7 @@ var ToggleButton = (0, import_react38.forwardRef)(function ToggleButton2(_a, ref
|
|
|
5508
5172
|
"children",
|
|
5509
5173
|
"className"
|
|
5510
5174
|
]);
|
|
5511
|
-
return /* @__PURE__ */ (0,
|
|
5175
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
|
|
5512
5176
|
"button",
|
|
5513
5177
|
__spreadProps(__spreadValues({
|
|
5514
5178
|
ref,
|
|
@@ -5522,7 +5186,7 @@ var ToggleButton = (0, import_react38.forwardRef)(function ToggleButton2(_a, ref
|
|
|
5522
5186
|
)
|
|
5523
5187
|
}, props), {
|
|
5524
5188
|
children: [
|
|
5525
|
-
icon && /* @__PURE__ */ (0,
|
|
5189
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("span", { className: "ph-toggle-btn__icon", children: icon }),
|
|
5526
5190
|
children
|
|
5527
5191
|
]
|
|
5528
5192
|
})
|
|
@@ -5536,13 +5200,13 @@ function ToggleGroup({
|
|
|
5536
5200
|
children,
|
|
5537
5201
|
className
|
|
5538
5202
|
}) {
|
|
5539
|
-
return /* @__PURE__ */ (0,
|
|
5203
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { className: cn("ph-toggle-group", className), role: "group", children });
|
|
5540
5204
|
}
|
|
5541
5205
|
ToggleGroup.displayName = "ToggleGroup";
|
|
5542
5206
|
|
|
5543
5207
|
// src/components/ui/Menubar.tsx
|
|
5544
5208
|
var import_react39 = require("react");
|
|
5545
|
-
var
|
|
5209
|
+
var import_jsx_runtime73 = require("react/jsx-runtime");
|
|
5546
5210
|
function Menubar(_a) {
|
|
5547
5211
|
var _b = _a, { items, className } = _b, props = __objRest(_b, ["items", "className"]);
|
|
5548
5212
|
const [openIndex, setOpenIndex] = (0, import_react39.useState)(-1);
|
|
@@ -5557,8 +5221,8 @@ function Menubar(_a) {
|
|
|
5557
5221
|
document.addEventListener("mousedown", handle);
|
|
5558
5222
|
return () => document.removeEventListener("mousedown", handle);
|
|
5559
5223
|
}, [openIndex]);
|
|
5560
|
-
return /* @__PURE__ */ (0,
|
|
5561
|
-
/* @__PURE__ */ (0,
|
|
5224
|
+
return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", __spreadProps(__spreadValues({ ref: barRef, className: cn("ph-menubar", className) }, props), { children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "ph-menubar__item", children: [
|
|
5225
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
5562
5226
|
"button",
|
|
5563
5227
|
{
|
|
5564
5228
|
type: "button",
|
|
@@ -5567,8 +5231,8 @@ function Menubar(_a) {
|
|
|
5567
5231
|
children: item.label
|
|
5568
5232
|
}
|
|
5569
5233
|
),
|
|
5570
|
-
openIndex === i && item.items && /* @__PURE__ */ (0,
|
|
5571
|
-
(sub, j) => sub.separator ? /* @__PURE__ */ (0,
|
|
5234
|
+
openIndex === i && item.items && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "ph-menubar__dropdown", children: item.items.map(
|
|
5235
|
+
(sub, j) => sub.separator ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "ph-menubar__separator" }, j) : /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
5572
5236
|
"button",
|
|
5573
5237
|
{
|
|
5574
5238
|
type: "button",
|
|
@@ -5590,7 +5254,7 @@ Menubar.displayName = "Menubar";
|
|
|
5590
5254
|
|
|
5591
5255
|
// src/components/ui/AlertDialog.tsx
|
|
5592
5256
|
var import_react40 = require("react");
|
|
5593
|
-
var
|
|
5257
|
+
var import_jsx_runtime74 = require("react/jsx-runtime");
|
|
5594
5258
|
function AlertDialog(_a) {
|
|
5595
5259
|
var _b = _a, {
|
|
5596
5260
|
isOpen: openProp,
|
|
@@ -5625,15 +5289,15 @@ function AlertDialog(_a) {
|
|
|
5625
5289
|
}
|
|
5626
5290
|
onClose == null ? void 0 : onClose();
|
|
5627
5291
|
};
|
|
5628
|
-
return /* @__PURE__ */ (0,
|
|
5292
|
+
return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
|
|
5629
5293
|
Modal,
|
|
5630
5294
|
__spreadProps(__spreadValues({
|
|
5631
5295
|
open: isOpen,
|
|
5632
5296
|
onClose,
|
|
5633
5297
|
title,
|
|
5634
|
-
footer: /* @__PURE__ */ (0,
|
|
5635
|
-
/* @__PURE__ */ (0,
|
|
5636
|
-
onConfirm && /* @__PURE__ */ (0,
|
|
5298
|
+
footer: /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex justify-end gap-2", children: [
|
|
5299
|
+
/* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Button, __spreadProps(__spreadValues({ variant: "secondary" }, cancelProps), { onClick: onClose, children: cancelText })),
|
|
5300
|
+
onConfirm && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Button, __spreadProps(__spreadValues({ variant: "primary", loading }, confirmProps), { onClick: handleConfirm, children: confirmText }))
|
|
5637
5301
|
] })
|
|
5638
5302
|
}, modalProps), {
|
|
5639
5303
|
children
|
|
@@ -5643,7 +5307,7 @@ function AlertDialog(_a) {
|
|
|
5643
5307
|
AlertDialog.displayName = "AlertDialog";
|
|
5644
5308
|
|
|
5645
5309
|
// src/components/ui/Dot.tsx
|
|
5646
|
-
var
|
|
5310
|
+
var import_jsx_runtime75 = require("react/jsx-runtime");
|
|
5647
5311
|
var colorMap2 = {
|
|
5648
5312
|
green: "bg-ph-success",
|
|
5649
5313
|
yellow: "bg-ph-warning",
|
|
@@ -5653,7 +5317,7 @@ var colorMap2 = {
|
|
|
5653
5317
|
};
|
|
5654
5318
|
function Dot(_a) {
|
|
5655
5319
|
var _b = _a, { color = "gray", size = "md", className } = _b, props = __objRest(_b, ["color", "size", "className"]);
|
|
5656
|
-
return /* @__PURE__ */ (0,
|
|
5320
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
|
|
5657
5321
|
"span",
|
|
5658
5322
|
__spreadValues({
|
|
5659
5323
|
className: cn(
|
|
@@ -5670,7 +5334,7 @@ Dot.displayName = "Dot";
|
|
|
5670
5334
|
|
|
5671
5335
|
// src/components/ui/Collapsible.tsx
|
|
5672
5336
|
var import_react41 = require("react");
|
|
5673
|
-
var
|
|
5337
|
+
var import_jsx_runtime76 = require("react/jsx-runtime");
|
|
5674
5338
|
function Collapsible(_a) {
|
|
5675
5339
|
var _b = _a, {
|
|
5676
5340
|
trigger,
|
|
@@ -5688,8 +5352,8 @@ function Collapsible(_a) {
|
|
|
5688
5352
|
const [internalOpen, setInternalOpen] = (0, import_react41.useState)(false);
|
|
5689
5353
|
const isOpen = controlledOpen != null ? controlledOpen : internalOpen;
|
|
5690
5354
|
const setOpen = onOpenChange != null ? onOpenChange : setInternalOpen;
|
|
5691
|
-
return /* @__PURE__ */ (0,
|
|
5692
|
-
/* @__PURE__ */ (0,
|
|
5355
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)("div", __spreadProps(__spreadValues({ className: cn("ph-collapsible", className) }, props), { children: [
|
|
5356
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(
|
|
5693
5357
|
"button",
|
|
5694
5358
|
{
|
|
5695
5359
|
type: "button",
|
|
@@ -5697,7 +5361,7 @@ function Collapsible(_a) {
|
|
|
5697
5361
|
className: "ph-collapsible__trigger",
|
|
5698
5362
|
"aria-expanded": isOpen,
|
|
5699
5363
|
children: [
|
|
5700
|
-
/* @__PURE__ */ (0,
|
|
5364
|
+
/* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
|
|
5701
5365
|
"svg",
|
|
5702
5366
|
{
|
|
5703
5367
|
className: cn("ph-collapsible__chevron", isOpen && "ph-collapsible__chevron--open"),
|
|
@@ -5708,20 +5372,20 @@ function Collapsible(_a) {
|
|
|
5708
5372
|
stroke: "currentColor",
|
|
5709
5373
|
strokeWidth: "2",
|
|
5710
5374
|
strokeLinecap: "round",
|
|
5711
|
-
children: /* @__PURE__ */ (0,
|
|
5375
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("path", { d: "M4 5l3 3 3-3" })
|
|
5712
5376
|
}
|
|
5713
5377
|
),
|
|
5714
5378
|
trigger
|
|
5715
5379
|
]
|
|
5716
5380
|
}
|
|
5717
5381
|
),
|
|
5718
|
-
isOpen && /* @__PURE__ */ (0,
|
|
5382
|
+
isOpen && /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { className: "ph-collapsible__content", children })
|
|
5719
5383
|
] }));
|
|
5720
5384
|
}
|
|
5721
5385
|
Collapsible.displayName = "Collapsible";
|
|
5722
5386
|
|
|
5723
5387
|
// src/components/ui/Metric.tsx
|
|
5724
|
-
var
|
|
5388
|
+
var import_jsx_runtime77 = require("react/jsx-runtime");
|
|
5725
5389
|
function Metric(_a) {
|
|
5726
5390
|
var _b = _a, {
|
|
5727
5391
|
value,
|
|
@@ -5738,21 +5402,21 @@ function Metric(_a) {
|
|
|
5738
5402
|
"icon",
|
|
5739
5403
|
"className"
|
|
5740
5404
|
]);
|
|
5741
|
-
return /* @__PURE__ */ (0,
|
|
5742
|
-
/* @__PURE__ */ (0,
|
|
5743
|
-
icon && /* @__PURE__ */ (0,
|
|
5744
|
-
/* @__PURE__ */ (0,
|
|
5745
|
-
badge && /* @__PURE__ */ (0,
|
|
5405
|
+
return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", __spreadProps(__spreadValues({ className: cn("ph-metric", className) }, props), { children: [
|
|
5406
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsxs)("div", { className: "ph-metric__header", children: [
|
|
5407
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { className: "ph-metric__icon", children: icon }),
|
|
5408
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { className: "ph-metric__label", children: label }),
|
|
5409
|
+
badge && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { className: "ph-metric__badge", children: badge })
|
|
5746
5410
|
] }),
|
|
5747
|
-
/* @__PURE__ */ (0,
|
|
5748
|
-
trend && /* @__PURE__ */ (0,
|
|
5411
|
+
/* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "ph-metric__value", children: value }),
|
|
5412
|
+
trend && /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("div", { className: "ph-metric__trend", children: trend })
|
|
5749
5413
|
] }));
|
|
5750
5414
|
}
|
|
5751
5415
|
Metric.displayName = "Metric";
|
|
5752
5416
|
|
|
5753
5417
|
// src/components/ui/Chip.tsx
|
|
5754
5418
|
var import_react42 = require("react");
|
|
5755
|
-
var
|
|
5419
|
+
var import_jsx_runtime78 = require("react/jsx-runtime");
|
|
5756
5420
|
var Chip = (0, import_react42.forwardRef)(function Chip2(_a, ref) {
|
|
5757
5421
|
var _b = _a, {
|
|
5758
5422
|
selected = false,
|
|
@@ -5765,7 +5429,7 @@ var Chip = (0, import_react42.forwardRef)(function Chip2(_a, ref) {
|
|
|
5765
5429
|
"children",
|
|
5766
5430
|
"className"
|
|
5767
5431
|
]);
|
|
5768
|
-
return /* @__PURE__ */ (0,
|
|
5432
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
|
|
5769
5433
|
"button",
|
|
5770
5434
|
__spreadProps(__spreadValues({
|
|
5771
5435
|
ref,
|
|
@@ -5777,8 +5441,8 @@ var Chip = (0, import_react42.forwardRef)(function Chip2(_a, ref) {
|
|
|
5777
5441
|
)
|
|
5778
5442
|
}, props), {
|
|
5779
5443
|
children: [
|
|
5780
|
-
/* @__PURE__ */ (0,
|
|
5781
|
-
onRemove && /* @__PURE__ */ (0,
|
|
5444
|
+
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "ph-chip__text", children }),
|
|
5445
|
+
onRemove && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
5782
5446
|
"span",
|
|
5783
5447
|
{
|
|
5784
5448
|
role: "button",
|
|
@@ -5789,7 +5453,7 @@ var Chip = (0, import_react42.forwardRef)(function Chip2(_a, ref) {
|
|
|
5789
5453
|
},
|
|
5790
5454
|
className: "ph-chip__remove",
|
|
5791
5455
|
"aria-label": "Remove",
|
|
5792
|
-
children: /* @__PURE__ */ (0,
|
|
5456
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("path", { d: "M2 2l6 6M8 2l-6 6" }) })
|
|
5793
5457
|
}
|
|
5794
5458
|
)
|
|
5795
5459
|
]
|
|
@@ -5800,7 +5464,7 @@ Chip.displayName = "Chip";
|
|
|
5800
5464
|
|
|
5801
5465
|
// src/components/ui/DataTable.tsx
|
|
5802
5466
|
var import_react43 = require("react");
|
|
5803
|
-
var
|
|
5467
|
+
var import_jsx_runtime79 = require("react/jsx-runtime");
|
|
5804
5468
|
function DataTable({
|
|
5805
5469
|
columns,
|
|
5806
5470
|
data,
|
|
@@ -5841,8 +5505,8 @@ function DataTable({
|
|
|
5841
5505
|
setSortDir("asc");
|
|
5842
5506
|
}
|
|
5843
5507
|
};
|
|
5844
|
-
return /* @__PURE__ */ (0,
|
|
5845
|
-
searchable && /* @__PURE__ */ (0,
|
|
5508
|
+
return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: cn("ph-data-table", className), children: [
|
|
5509
|
+
searchable && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "ph-data-table__toolbar", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
5846
5510
|
"input",
|
|
5847
5511
|
{
|
|
5848
5512
|
type: "text",
|
|
@@ -5855,33 +5519,33 @@ function DataTable({
|
|
|
5855
5519
|
className: "ph-input ph-input-sm"
|
|
5856
5520
|
}
|
|
5857
5521
|
) }),
|
|
5858
|
-
/* @__PURE__ */ (0,
|
|
5859
|
-
/* @__PURE__ */ (0,
|
|
5522
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "ph-table-wrap", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("table", { className: "ph-table", children: [
|
|
5523
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("tr", { children: columns.map((col) => /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
|
|
5860
5524
|
"th",
|
|
5861
5525
|
{
|
|
5862
5526
|
className: cn(col.sortable && "cursor-pointer select-none", col.className),
|
|
5863
5527
|
onClick: () => col.sortable && handleSort(col.key),
|
|
5864
5528
|
children: [
|
|
5865
5529
|
col.label,
|
|
5866
|
-
sortKey === col.key && /* @__PURE__ */ (0,
|
|
5530
|
+
sortKey === col.key && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "ml-1 inline-block", children: sortDir === "asc" ? "\u2191" : "\u2193" })
|
|
5867
5531
|
]
|
|
5868
5532
|
},
|
|
5869
5533
|
col.key
|
|
5870
5534
|
)) }) }),
|
|
5871
|
-
/* @__PURE__ */ (0,
|
|
5872
|
-
paged.map((item, i) => /* @__PURE__ */ (0,
|
|
5873
|
-
paged.length === 0 && /* @__PURE__ */ (0,
|
|
5535
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("tbody", { children: [
|
|
5536
|
+
paged.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("tr", { children: columns.map((col) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("td", { className: col.className, children: col.render ? col.render(item) : item[col.key] }, col.key)) }, i)),
|
|
5537
|
+
paged.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("tr", { children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("td", { colSpan: columns.length, className: "text-center text-ph-mutedtext py-8", children: "No results" }) })
|
|
5874
5538
|
] })
|
|
5875
5539
|
] }) }),
|
|
5876
|
-
totalPages > 1 && /* @__PURE__ */ (0,
|
|
5877
|
-
/* @__PURE__ */ (0,
|
|
5878
|
-
/* @__PURE__ */ (0,
|
|
5540
|
+
totalPages > 1 && /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "ph-data-table__pagination", children: [
|
|
5541
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("button", { disabled: page === 0, onClick: () => setPage((p) => p - 1), className: "ph-data-table__page-btn", children: "Previous" }),
|
|
5542
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("span", { className: "text-xs text-ph-mutedtext", children: [
|
|
5879
5543
|
"Page ",
|
|
5880
5544
|
page + 1,
|
|
5881
5545
|
" of ",
|
|
5882
5546
|
totalPages
|
|
5883
5547
|
] }),
|
|
5884
|
-
/* @__PURE__ */ (0,
|
|
5548
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("button", { disabled: page >= totalPages - 1, onClick: () => setPage((p) => p + 1), className: "ph-data-table__page-btn", children: "Next" })
|
|
5885
5549
|
] })
|
|
5886
5550
|
] });
|
|
5887
5551
|
}
|
|
@@ -5889,7 +5553,7 @@ DataTable.displayName = "DataTable";
|
|
|
5889
5553
|
|
|
5890
5554
|
// src/components/ui/DatePicker.tsx
|
|
5891
5555
|
var import_react44 = require("react");
|
|
5892
|
-
var
|
|
5556
|
+
var import_jsx_runtime80 = require("react/jsx-runtime");
|
|
5893
5557
|
var MONTHS = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
|
|
5894
5558
|
var DAYS = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
|
|
5895
5559
|
function DatePicker(_a) {
|
|
@@ -5924,8 +5588,8 @@ function DatePicker(_a) {
|
|
|
5924
5588
|
setOpen(false);
|
|
5925
5589
|
};
|
|
5926
5590
|
const nav = (delta) => setViewDate(new Date(viewDate.getFullYear(), viewDate.getMonth() + delta, 1));
|
|
5927
|
-
return /* @__PURE__ */ (0,
|
|
5928
|
-
/* @__PURE__ */ (0,
|
|
5591
|
+
return /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: cn("ph-datepicker relative", className), children: [
|
|
5592
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
5929
5593
|
"input",
|
|
5930
5594
|
__spreadValues({
|
|
5931
5595
|
type: "text",
|
|
@@ -5936,19 +5600,19 @@ function DatePicker(_a) {
|
|
|
5936
5600
|
className: "ph-input w-full cursor-pointer"
|
|
5937
5601
|
}, props)
|
|
5938
5602
|
),
|
|
5939
|
-
open && /* @__PURE__ */ (0,
|
|
5940
|
-
/* @__PURE__ */ (0,
|
|
5941
|
-
/* @__PURE__ */ (0,
|
|
5942
|
-
/* @__PURE__ */ (0,
|
|
5603
|
+
open && /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "ph-datepicker__dropdown", children: [
|
|
5604
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "ph-datepicker__nav", children: [
|
|
5605
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)("button", { type: "button", onClick: () => nav(-1), className: "ph-datepicker__nav-btn", "aria-label": "Previous month", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("path", { d: "M7 3L4 6l3 3" }) }) }),
|
|
5606
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("span", { className: "ph-datepicker__nav-label", children: [
|
|
5943
5607
|
MONTHS[viewDate.getMonth()],
|
|
5944
5608
|
" ",
|
|
5945
5609
|
viewDate.getFullYear()
|
|
5946
5610
|
] }),
|
|
5947
|
-
/* @__PURE__ */ (0,
|
|
5611
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)("button", { type: "button", onClick: () => nav(1), className: "ph-datepicker__nav-btn", "aria-label": "Next month", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("path", { d: "M5 3l3 3-3 3" }) }) })
|
|
5948
5612
|
] }),
|
|
5949
|
-
/* @__PURE__ */ (0,
|
|
5950
|
-
DAYS.map((d) => /* @__PURE__ */ (0,
|
|
5951
|
-
days.map((d, i) => /* @__PURE__ */ (0,
|
|
5613
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsxs)("div", { className: "ph-datepicker__grid", children: [
|
|
5614
|
+
DAYS.map((d) => /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "ph-datepicker__day-header", children: d }, d)),
|
|
5615
|
+
days.map((d, i) => /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
5952
5616
|
"button",
|
|
5953
5617
|
{
|
|
5954
5618
|
type: "button",
|
|
@@ -5970,40 +5634,44 @@ function DatePicker(_a) {
|
|
|
5970
5634
|
DatePicker.displayName = "DatePicker";
|
|
5971
5635
|
|
|
5972
5636
|
// src/components/ui/AppLayout.tsx
|
|
5973
|
-
var
|
|
5637
|
+
var import_jsx_runtime81 = require("react/jsx-runtime");
|
|
5974
5638
|
function AppLayout({ sidebar, children, sidebarWidth = 240, className }) {
|
|
5975
|
-
return /* @__PURE__ */ (0,
|
|
5639
|
+
return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(
|
|
5976
5640
|
"div",
|
|
5977
5641
|
{
|
|
5978
5642
|
className: cn("ph-app-layout grid min-h-screen", className),
|
|
5979
5643
|
style: { gridTemplateColumns: `${sidebarWidth}px minmax(0, 1fr)` },
|
|
5980
5644
|
children: [
|
|
5981
|
-
/* @__PURE__ */ (0,
|
|
5982
|
-
/* @__PURE__ */ (0,
|
|
5645
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)("aside", { className: "ph-app-layout__sidebar border-r border-ph-border bg-ph-surface overflow-y-auto", children: sidebar }),
|
|
5646
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)("main", { className: "ph-app-layout__content min-w-0 overflow-y-auto bg-ph-canvas", children })
|
|
5983
5647
|
]
|
|
5984
5648
|
}
|
|
5985
5649
|
);
|
|
5986
5650
|
}
|
|
5987
5651
|
|
|
5988
5652
|
// src/components/ui/Sidebar.tsx
|
|
5989
|
-
var
|
|
5990
|
-
function Sidebar({ groups, className, header, footer, collapsed = false, onCollapse }) {
|
|
5991
|
-
return /* @__PURE__ */ (0,
|
|
5992
|
-
header && /* @__PURE__ */ (0,
|
|
5993
|
-
/* @__PURE__ */ (0,
|
|
5994
|
-
|
|
5995
|
-
/* @__PURE__ */ (0,
|
|
5996
|
-
|
|
5997
|
-
|
|
5653
|
+
var import_jsx_runtime82 = require("react/jsx-runtime");
|
|
5654
|
+
function Sidebar({ groups, className, header, footer, children, collapsed = false, onCollapse }) {
|
|
5655
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("nav", { className: cn("ph-sidebar flex flex-col h-full", collapsed && "ph-sidebar--collapsed", className), children: [
|
|
5656
|
+
header && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "ph-sidebar__header px-3 py-3 border-b border-ph-border-subtle", children: header }),
|
|
5657
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "ph-sidebar__body flex-1 overflow-y-auto px-2 py-3 space-y-5", children: groups.map((group) => {
|
|
5658
|
+
var _a;
|
|
5659
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "ph-sidebar__group", children: [
|
|
5660
|
+
group.label && !collapsed && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("h3", { className: "ph-sidebar__group-label px-2 mb-1 text-[10px] font-semibold uppercase tracking-wider text-ph-mutedtext", children: group.label }),
|
|
5661
|
+
/* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "ph-sidebar__items space-y-0.5", children: group.items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(SidebarItem, __spreadProps(__spreadValues({}, item), { collapsed }), item.label)) })
|
|
5662
|
+
] }, (_a = group.label) != null ? _a : "default");
|
|
5663
|
+
}) }),
|
|
5664
|
+
children,
|
|
5665
|
+
footer && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "ph-sidebar__footer px-3 py-3 border-t border-ph-border-subtle", children: footer })
|
|
5998
5666
|
] });
|
|
5999
5667
|
}
|
|
6000
|
-
function SidebarItem({ label, icon, badge, active, onClick, collapsed }) {
|
|
5668
|
+
function SidebarItem({ label, icon, badge, active, href, onClick, collapsed }) {
|
|
6001
5669
|
const Comp = onClick ? "button" : "a";
|
|
6002
|
-
return /* @__PURE__ */ (0,
|
|
5670
|
+
return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(
|
|
6003
5671
|
Comp,
|
|
6004
5672
|
{
|
|
6005
5673
|
type: onClick ? "button" : void 0,
|
|
6006
|
-
href: onClick ? void 0 :
|
|
5674
|
+
href: onClick ? void 0 : href,
|
|
6007
5675
|
onClick,
|
|
6008
5676
|
className: cn(
|
|
6009
5677
|
"ph-sidebar__item flex items-center gap-2.5 w-full rounded-md px-2.5 py-2 text-sm text-left transition",
|
|
@@ -6012,9 +5680,9 @@ function SidebarItem({ label, icon, badge, active, onClick, collapsed }) {
|
|
|
6012
5680
|
),
|
|
6013
5681
|
title: collapsed ? label : void 0,
|
|
6014
5682
|
children: [
|
|
6015
|
-
icon && /* @__PURE__ */ (0,
|
|
6016
|
-
!collapsed && /* @__PURE__ */ (0,
|
|
6017
|
-
!collapsed && badge && /* @__PURE__ */ (0,
|
|
5683
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: cn("ph-sidebar__item-icon shrink-0 flex items-center justify-center", collapsed ? "w-5 h-5" : "w-4 h-4"), children: icon }),
|
|
5684
|
+
!collapsed && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "ph-sidebar__item-label truncate flex-1", children: label }),
|
|
5685
|
+
!collapsed && badge && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "ph-sidebar__item-badge shrink-0", children: badge })
|
|
6018
5686
|
]
|
|
6019
5687
|
}
|
|
6020
5688
|
);
|
|
@@ -6027,7 +5695,7 @@ var import_react47 = require("react");
|
|
|
6027
5695
|
// src/lib/hog-charts-lite/CanvasTrendLineChart.tsx
|
|
6028
5696
|
var import_d3_scale = require("d3-scale");
|
|
6029
5697
|
var import_react45 = require("react");
|
|
6030
|
-
var
|
|
5698
|
+
var import_jsx_runtime83 = require("react/jsx-runtime");
|
|
6031
5699
|
var HOG_LITE_DEFAULT_MARGINS = { top: 16, right: 16, bottom: 32, left: 48 };
|
|
6032
5700
|
function resolveDisplayedSeries(series, palette) {
|
|
6033
5701
|
const visible = series.filter((s) => {
|
|
@@ -6324,8 +5992,8 @@ function CanvasTrendLineChart({
|
|
|
6324
5992
|
value: s.data[hoverIndex]
|
|
6325
5993
|
})).filter((row) => typeof row.value === "number" && Number.isFinite(row.value));
|
|
6326
5994
|
}, [hoverIndex, labels, resolved]);
|
|
6327
|
-
return /* @__PURE__ */ (0,
|
|
6328
|
-
/* @__PURE__ */ (0,
|
|
5995
|
+
return /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("div", { ref: containerRef, className: `relative w-full ${className}`.trim(), children: [
|
|
5996
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
6329
5997
|
"canvas",
|
|
6330
5998
|
{
|
|
6331
5999
|
ref: canvasRef,
|
|
@@ -6335,7 +6003,7 @@ function CanvasTrendLineChart({
|
|
|
6335
6003
|
onMouseLeave
|
|
6336
6004
|
}
|
|
6337
6005
|
),
|
|
6338
|
-
tooltipRows != null && tooltipRows.length > 0 && hoverIndex != null ? /* @__PURE__ */ (0,
|
|
6006
|
+
tooltipRows != null && tooltipRows.length > 0 && hoverIndex != null ? /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(
|
|
6339
6007
|
"div",
|
|
6340
6008
|
{
|
|
6341
6009
|
className: "pointer-events-none absolute z-20 max-w-xs rounded-[var(--ph-radius-app)] border border-ph-border-strong bg-ph-surface px-3 py-2 text-xs shadow-ph-md",
|
|
@@ -6344,11 +6012,11 @@ function CanvasTrendLineChart({
|
|
|
6344
6012
|
top: 8
|
|
6345
6013
|
},
|
|
6346
6014
|
children: [
|
|
6347
|
-
/* @__PURE__ */ (0,
|
|
6348
|
-
/* @__PURE__ */ (0,
|
|
6349
|
-
/* @__PURE__ */ (0,
|
|
6350
|
-
/* @__PURE__ */ (0,
|
|
6351
|
-
/* @__PURE__ */ (0,
|
|
6015
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("div", { className: "font-semibold text-ph-ink", children: labels[hoverIndex] }),
|
|
6016
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("ul", { className: "mt-1 space-y-0.5 text-ph-mutedtext", children: tooltipRows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)("li", { className: "flex items-center gap-2", children: [
|
|
6017
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "h-2 w-2 shrink-0 rounded-full", style: { background: row.color } }),
|
|
6018
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "min-w-0 truncate", children: row.label }),
|
|
6019
|
+
/* @__PURE__ */ (0, import_jsx_runtime83.jsx)("span", { className: "ml-auto tabular-nums text-ph-ink", children: row.value })
|
|
6352
6020
|
] }, row.label)) })
|
|
6353
6021
|
]
|
|
6354
6022
|
}
|
|
@@ -6361,7 +6029,10 @@ var import_react46 = require("react");
|
|
|
6361
6029
|
var DEFAULT_TOKENS = {
|
|
6362
6030
|
series: ["#1d4aff", "#621da6", "#42827e", "#ce0e74", "#f14f58", "#529a0a", "#fe729e"],
|
|
6363
6031
|
muted: "hsl(220 9% 90%)",
|
|
6364
|
-
surface: "#ffffff"
|
|
6032
|
+
surface: "#ffffff",
|
|
6033
|
+
textMuted: "hsl(220 9% 46%)",
|
|
6034
|
+
grid: "hsl(220 13% 91%)",
|
|
6035
|
+
borderStrong: "hsl(220 13% 80%)"
|
|
6365
6036
|
};
|
|
6366
6037
|
function readTokens() {
|
|
6367
6038
|
if (typeof document === "undefined") return DEFAULT_TOKENS;
|
|
@@ -6378,7 +6049,10 @@ function readTokens() {
|
|
|
6378
6049
|
read("--ph-data-7", DEFAULT_TOKENS.series[6])
|
|
6379
6050
|
],
|
|
6380
6051
|
muted: read("--ph-muted", DEFAULT_TOKENS.muted),
|
|
6381
|
-
surface: read("--ph-surface", DEFAULT_TOKENS.surface)
|
|
6052
|
+
surface: read("--ph-surface", DEFAULT_TOKENS.surface),
|
|
6053
|
+
textMuted: read("--ph-mutedtext", DEFAULT_TOKENS.textMuted),
|
|
6054
|
+
grid: read("--ph-border", DEFAULT_TOKENS.grid),
|
|
6055
|
+
borderStrong: read("--ph-border-strong", DEFAULT_TOKENS.borderStrong)
|
|
6382
6056
|
};
|
|
6383
6057
|
}
|
|
6384
6058
|
function useChartTokens() {
|
|
@@ -6401,7 +6075,7 @@ function buildHogChartTheme(tokens) {
|
|
|
6401
6075
|
}
|
|
6402
6076
|
|
|
6403
6077
|
// src/components/charts/quill/TimeSeriesLineChart.tsx
|
|
6404
|
-
var
|
|
6078
|
+
var import_jsx_runtime84 = require("react/jsx-runtime");
|
|
6405
6079
|
function TimeSeriesLineChart({
|
|
6406
6080
|
series,
|
|
6407
6081
|
labels,
|
|
@@ -6424,12 +6098,12 @@ function TimeSeriesLineChart({
|
|
|
6424
6098
|
}),
|
|
6425
6099
|
[series, tokens.series]
|
|
6426
6100
|
);
|
|
6427
|
-
return /* @__PURE__ */ (0,
|
|
6101
|
+
return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
|
|
6428
6102
|
"div",
|
|
6429
6103
|
{
|
|
6430
6104
|
className: cn("relative w-full", className),
|
|
6431
6105
|
style: { height, minHeight: 220 },
|
|
6432
|
-
children: /* @__PURE__ */ (0,
|
|
6106
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
|
|
6433
6107
|
CanvasTrendLineChart,
|
|
6434
6108
|
{
|
|
6435
6109
|
labels,
|
|
@@ -6446,7 +6120,7 @@ function TimeSeriesLineChart({
|
|
|
6446
6120
|
|
|
6447
6121
|
// src/components/charts/quill/BarChart.tsx
|
|
6448
6122
|
var import_react48 = require("react");
|
|
6449
|
-
var
|
|
6123
|
+
var import_jsx_runtime85 = require("react/jsx-runtime");
|
|
6450
6124
|
function BarChart({ series, labels, className, height = 280 }) {
|
|
6451
6125
|
const tokens = useChartTokens();
|
|
6452
6126
|
const groupCount = labels.length;
|
|
@@ -6473,13 +6147,13 @@ function BarChart({ series, labels, className, height = 280 }) {
|
|
|
6473
6147
|
const groupW = innerW / groupCount;
|
|
6474
6148
|
const barW = Math.max(4, groupW * 0.7 / barCount);
|
|
6475
6149
|
const gap = groupW * 0.15;
|
|
6476
|
-
return /* @__PURE__ */ (0,
|
|
6150
|
+
return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("div", { className: cn("relative w-full", className), style: { height }, children: /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("svg", { viewBox: `0 0 400 ${height}`, className: "h-full w-full", preserveAspectRatio: "xMidYMid meet", suppressHydrationWarning: true, children: [
|
|
6477
6151
|
chartData.map(
|
|
6478
6152
|
(bar, bi) => bar.values.map((v, li) => {
|
|
6479
6153
|
const x = padding.left + li * groupW + gap / 2 + bi * barW;
|
|
6480
6154
|
const barH = v / maxVal * (innerH - 4);
|
|
6481
6155
|
const y = padding.top + innerH - barH;
|
|
6482
|
-
return /* @__PURE__ */ (0,
|
|
6156
|
+
return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
|
|
6483
6157
|
"rect",
|
|
6484
6158
|
{
|
|
6485
6159
|
x,
|
|
@@ -6488,13 +6162,13 @@ function BarChart({ series, labels, className, height = 280 }) {
|
|
|
6488
6162
|
height: barH,
|
|
6489
6163
|
fill: bar.color,
|
|
6490
6164
|
rx: 2,
|
|
6491
|
-
children: /* @__PURE__ */ (0,
|
|
6165
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("title", { children: `${bar.label}: ${v}` })
|
|
6492
6166
|
},
|
|
6493
6167
|
`${bi}-${li}`
|
|
6494
6168
|
);
|
|
6495
6169
|
})
|
|
6496
6170
|
),
|
|
6497
|
-
labels.map((l, i) => /* @__PURE__ */ (0,
|
|
6171
|
+
labels.map((l, i) => /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
|
|
6498
6172
|
"text",
|
|
6499
6173
|
{
|
|
6500
6174
|
x: padding.left + i * groupW + groupW / 2,
|
|
@@ -6511,7 +6185,7 @@ function BarChart({ series, labels, className, height = 280 }) {
|
|
|
6511
6185
|
|
|
6512
6186
|
// src/components/charts/quill/PieChart.tsx
|
|
6513
6187
|
var import_react49 = require("react");
|
|
6514
|
-
var
|
|
6188
|
+
var import_jsx_runtime86 = require("react/jsx-runtime");
|
|
6515
6189
|
function PieChart({ slices, className, size = 200 }) {
|
|
6516
6190
|
const tokens = useChartTokens();
|
|
6517
6191
|
const { total, segments } = (0, import_react49.useMemo)(() => {
|
|
@@ -6542,9 +6216,9 @@ function PieChart({ slices, className, size = 200 }) {
|
|
|
6542
6216
|
const describeArc = (start, end) => {
|
|
6543
6217
|
if (end - start >= 359.9) {
|
|
6544
6218
|
const p1 = polarToCart(start, r);
|
|
6545
|
-
const
|
|
6546
|
-
const
|
|
6547
|
-
return `M${p1.x},${p1.y} A${r},${r} 0 0,1 ${
|
|
6219
|
+
const p2 = polarToCart(start + 179.9, r);
|
|
6220
|
+
const p3 = polarToCart(start + 359.9, r);
|
|
6221
|
+
return `M${p1.x},${p1.y} A${r},${r} 0 0,1 ${p2.x},${p2.y} A${r},${r} 0 0,1 ${p3.x},${p3.y} Z`;
|
|
6548
6222
|
}
|
|
6549
6223
|
const s = polarToCart(start, r);
|
|
6550
6224
|
const e = polarToCart(end, r);
|
|
@@ -6553,18 +6227,18 @@ function PieChart({ slices, className, size = 200 }) {
|
|
|
6553
6227
|
const large = end - start > 180 ? 1 : 0;
|
|
6554
6228
|
return `M${s.x},${s.y} A${r},${r} 0 ${large},1 ${e.x},${e.y} L${ei.x},${ei.y} A${ir},${ir} 0 ${large},0 ${si.x},${si.y} Z`;
|
|
6555
6229
|
};
|
|
6556
|
-
return /* @__PURE__ */ (0,
|
|
6557
|
-
/* @__PURE__ */ (0,
|
|
6558
|
-
segments.map((s) => /* @__PURE__ */ (0,
|
|
6559
|
-
/* @__PURE__ */ (0,
|
|
6230
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)("div", { className: cn("relative", className), style: { width: size, height: size }, children: [
|
|
6231
|
+
/* @__PURE__ */ (0, import_jsx_runtime86.jsxs)("svg", { viewBox: `0 0 ${size} ${size}`, className: "h-full w-full", suppressHydrationWarning: true, children: [
|
|
6232
|
+
segments.map((s) => /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("path", { d: describeArc(s.startAngle, s.endAngle), fill: s.color, children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("title", { children: `${s.label}: ${s.pct.toFixed(1)}%` }) }, s.key)),
|
|
6233
|
+
/* @__PURE__ */ (0, import_jsx_runtime86.jsx)("circle", { cx, cy, r: ir, fill: "var(--ph-surface)" })
|
|
6560
6234
|
] }),
|
|
6561
|
-
/* @__PURE__ */ (0,
|
|
6235
|
+
/* @__PURE__ */ (0, import_jsx_runtime86.jsx)("div", { className: "absolute inset-0 flex items-center justify-center pointer-events-none", children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { className: "text-lg font-bold text-ph-ink tabular-nums", children: slices.length }) })
|
|
6562
6236
|
] });
|
|
6563
6237
|
}
|
|
6564
6238
|
|
|
6565
6239
|
// src/components/charts/quill/Sparkline.tsx
|
|
6566
6240
|
var import_react50 = require("react");
|
|
6567
|
-
var
|
|
6241
|
+
var import_jsx_runtime87 = require("react/jsx-runtime");
|
|
6568
6242
|
function Sparkline({
|
|
6569
6243
|
data,
|
|
6570
6244
|
color,
|
|
@@ -6588,7 +6262,7 @@ function Sparkline({
|
|
|
6588
6262
|
}).join(" ");
|
|
6589
6263
|
}, [data, width, height]);
|
|
6590
6264
|
if (data.length < 2) return null;
|
|
6591
|
-
return /* @__PURE__ */ (0,
|
|
6265
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
6592
6266
|
"svg",
|
|
6593
6267
|
{
|
|
6594
6268
|
className: cn("shrink-0", className),
|
|
@@ -6597,13 +6271,13 @@ function Sparkline({
|
|
|
6597
6271
|
viewBox: `0 0 ${width} ${height}`,
|
|
6598
6272
|
"aria-hidden": true,
|
|
6599
6273
|
suppressHydrationWarning: true,
|
|
6600
|
-
children: /* @__PURE__ */ (0,
|
|
6274
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("path", { d: path, fill: "none", stroke: resolvedColor, strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" })
|
|
6601
6275
|
}
|
|
6602
6276
|
);
|
|
6603
6277
|
}
|
|
6604
6278
|
|
|
6605
6279
|
// src/components/charts/quill/MetricCard.tsx
|
|
6606
|
-
var
|
|
6280
|
+
var import_jsx_runtime88 = require("react/jsx-runtime");
|
|
6607
6281
|
function MetricCard({
|
|
6608
6282
|
value,
|
|
6609
6283
|
label,
|
|
@@ -6613,44 +6287,44 @@ function MetricCard({
|
|
|
6613
6287
|
className
|
|
6614
6288
|
}) {
|
|
6615
6289
|
var _a;
|
|
6616
|
-
return /* @__PURE__ */ (0,
|
|
6617
|
-
/* @__PURE__ */ (0,
|
|
6618
|
-
icon && /* @__PURE__ */ (0,
|
|
6619
|
-
/* @__PURE__ */ (0,
|
|
6620
|
-
change && /* @__PURE__ */ (0,
|
|
6290
|
+
return /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)("div", { className: cn("ph-metric", className), children: [
|
|
6291
|
+
/* @__PURE__ */ (0, import_jsx_runtime88.jsxs)("div", { className: "ph-metric__header", children: [
|
|
6292
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("span", { className: "ph-metric__icon", children: icon }),
|
|
6293
|
+
/* @__PURE__ */ (0, import_jsx_runtime88.jsx)("span", { className: "ph-metric__label", children: label }),
|
|
6294
|
+
change && /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)(Badge, { variant: ((_a = change.positive) != null ? _a : change.value >= 0) ? "success" : "danger", children: [
|
|
6621
6295
|
change.value >= 0 ? "+" : "",
|
|
6622
6296
|
change.value,
|
|
6623
6297
|
"%"
|
|
6624
6298
|
] })
|
|
6625
6299
|
] }),
|
|
6626
|
-
/* @__PURE__ */ (0,
|
|
6627
|
-
sparklineData && sparklineData.length > 0 && /* @__PURE__ */ (0,
|
|
6300
|
+
/* @__PURE__ */ (0, import_jsx_runtime88.jsx)("div", { className: "ph-metric__value", children: value }),
|
|
6301
|
+
sparklineData && sparklineData.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime88.jsx)("div", { className: "mt-2", children: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(Sparkline, { data: sparklineData }) })
|
|
6628
6302
|
] });
|
|
6629
6303
|
}
|
|
6630
6304
|
|
|
6631
6305
|
// src/components/charts/quill/FunnelChart.tsx
|
|
6632
6306
|
var import_react51 = require("react");
|
|
6633
|
-
var
|
|
6307
|
+
var import_jsx_runtime89 = require("react/jsx-runtime");
|
|
6634
6308
|
function FunnelChart({ steps, className }) {
|
|
6635
6309
|
const tokens = useChartTokens();
|
|
6636
6310
|
const maxCount = (0, import_react51.useMemo)(() => Math.max(...steps.map((s) => s.count)), [steps]);
|
|
6637
|
-
return /* @__PURE__ */ (0,
|
|
6311
|
+
return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("div", { className: cn("space-y-2", className), suppressHydrationWarning: true, children: steps.map((step, i) => {
|
|
6638
6312
|
const pct = step.count / maxCount * 100;
|
|
6639
6313
|
const prev = i > 0 ? steps[i - 1].count : step.count;
|
|
6640
6314
|
const dropoff = prev > 0 ? (prev - step.count) / prev * 100 : 0;
|
|
6641
|
-
return /* @__PURE__ */ (0,
|
|
6642
|
-
/* @__PURE__ */ (0,
|
|
6643
|
-
/* @__PURE__ */ (0,
|
|
6644
|
-
/* @__PURE__ */ (0,
|
|
6315
|
+
return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("div", { className: "space-y-1", children: [
|
|
6316
|
+
/* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("div", { className: "flex items-center justify-between text-sm", children: [
|
|
6317
|
+
/* @__PURE__ */ (0, import_jsx_runtime89.jsx)("span", { className: "font-medium text-ph-ink", children: step.label }),
|
|
6318
|
+
/* @__PURE__ */ (0, import_jsx_runtime89.jsx)("span", { className: "tabular-nums text-ph-subtle", children: step.count.toLocaleString() })
|
|
6645
6319
|
] }),
|
|
6646
|
-
/* @__PURE__ */ (0,
|
|
6320
|
+
/* @__PURE__ */ (0, import_jsx_runtime89.jsx)("div", { className: "relative h-8 overflow-hidden rounded-md", style: { background: tokens.muted }, children: /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
|
|
6647
6321
|
"div",
|
|
6648
6322
|
{
|
|
6649
6323
|
className: "h-full rounded-md transition-all duration-500",
|
|
6650
6324
|
style: { width: `${pct}%`, background: i === 0 ? tokens.series[0] : tokens.series[i % tokens.series.length] }
|
|
6651
6325
|
}
|
|
6652
6326
|
) }),
|
|
6653
|
-
i > 0 && dropoff > 0 && /* @__PURE__ */ (0,
|
|
6327
|
+
i > 0 && dropoff > 0 && /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("p", { className: "text-xs text-ph-danger", children: [
|
|
6654
6328
|
"-",
|
|
6655
6329
|
dropoff.toFixed(1),
|
|
6656
6330
|
"% dropoff"
|
|
@@ -6719,216 +6393,84 @@ function FunnelChart({ steps, className }) {
|
|
|
6719
6393
|
H5,
|
|
6720
6394
|
HoverCard,
|
|
6721
6395
|
Icon,
|
|
6722
|
-
Icon123,
|
|
6723
|
-
IconAI,
|
|
6724
|
-
IconAction,
|
|
6725
6396
|
IconActivity,
|
|
6726
|
-
IconAdsClick,
|
|
6727
|
-
IconAndroidOS,
|
|
6728
|
-
IconAppleIOS,
|
|
6729
|
-
IconArchive,
|
|
6730
6397
|
IconAreaChart,
|
|
6731
6398
|
IconArrowDown,
|
|
6732
6399
|
IconArrowUp,
|
|
6733
|
-
IconAtSign,
|
|
6734
|
-
IconBadge,
|
|
6735
6400
|
IconBase,
|
|
6736
6401
|
IconBell,
|
|
6737
6402
|
IconBellOff,
|
|
6738
|
-
IconBinary,
|
|
6739
|
-
IconBlank,
|
|
6740
|
-
IconBold,
|
|
6741
6403
|
IconBolt,
|
|
6742
|
-
IconBook,
|
|
6743
|
-
IconBookmarkBorder,
|
|
6744
6404
|
IconBox,
|
|
6745
|
-
IconBranch,
|
|
6746
|
-
IconBug,
|
|
6747
6405
|
IconByName,
|
|
6748
|
-
IconCalculate,
|
|
6749
|
-
IconCalendar,
|
|
6750
|
-
IconCalendarDay,
|
|
6751
6406
|
IconCancel,
|
|
6752
|
-
IconCart,
|
|
6753
|
-
IconChat,
|
|
6754
6407
|
IconCheck,
|
|
6755
6408
|
IconCheckCircle,
|
|
6756
|
-
IconCheckboxChecked,
|
|
6757
6409
|
IconChevronDown,
|
|
6758
6410
|
IconChevronLeft,
|
|
6759
6411
|
IconChevronRight,
|
|
6760
|
-
IconChrome,
|
|
6761
6412
|
IconClipboardEdit,
|
|
6762
|
-
IconClock,
|
|
6763
6413
|
IconClose,
|
|
6764
|
-
IconCloud,
|
|
6765
6414
|
IconCodePreview,
|
|
6766
|
-
IconCoffee,
|
|
6767
6415
|
IconCohort,
|
|
6768
6416
|
IconCommandCursor,
|
|
6769
|
-
IconConfetti,
|
|
6770
6417
|
IconCopy,
|
|
6771
|
-
IconCrown,
|
|
6772
6418
|
IconCumulativeChart,
|
|
6773
6419
|
IconDataReel,
|
|
6774
6420
|
IconDatabase,
|
|
6775
|
-
IconDevices,
|
|
6776
|
-
IconDocument,
|
|
6777
6421
|
IconDownload,
|
|
6778
|
-
IconDownloadCloud,
|
|
6779
|
-
IconDragHandle,
|
|
6780
6422
|
IconEdit,
|
|
6781
6423
|
IconErrorOutline,
|
|
6782
|
-
IconEvent,
|
|
6783
6424
|
IconEventStream,
|
|
6784
6425
|
IconExclamation,
|
|
6785
6426
|
IconExperimentSplit,
|
|
6786
|
-
IconExternalLink,
|
|
6787
|
-
IconEye,
|
|
6788
|
-
IconEyeHidden,
|
|
6789
|
-
IconFacebook,
|
|
6790
6427
|
IconFeatureGate,
|
|
6791
|
-
IconFeedback,
|
|
6792
|
-
IconFile,
|
|
6793
|
-
IconFilter,
|
|
6794
|
-
IconFingerprint,
|
|
6795
|
-
IconFirefox,
|
|
6796
6428
|
IconFlag,
|
|
6797
6429
|
IconFlare,
|
|
6798
6430
|
IconFlask,
|
|
6799
|
-
IconFolder,
|
|
6800
|
-
IconForward,
|
|
6801
|
-
IconFullScreen,
|
|
6802
|
-
IconFunnelHorizontal,
|
|
6803
|
-
IconFunnelVertical,
|
|
6804
|
-
IconGear,
|
|
6805
|
-
IconGhost,
|
|
6806
6431
|
IconGift,
|
|
6807
|
-
IconGitlab,
|
|
6808
|
-
IconGlobe,
|
|
6809
|
-
IconGoogle,
|
|
6810
6432
|
IconGridView,
|
|
6811
|
-
IconGroupedEvents,
|
|
6812
|
-
IconGroups,
|
|
6813
6433
|
IconHandClick,
|
|
6814
|
-
IconHash,
|
|
6815
|
-
IconHeadphones,
|
|
6816
|
-
IconHeart,
|
|
6817
|
-
IconHeatmap,
|
|
6818
6434
|
IconHome,
|
|
6819
|
-
IconHomeFilled,
|
|
6820
|
-
IconHourglass,
|
|
6821
|
-
IconImage,
|
|
6822
|
-
IconInbox,
|
|
6823
6435
|
IconInfo,
|
|
6824
|
-
IconInfoFilled,
|
|
6825
6436
|
IconInsightBoard,
|
|
6826
|
-
IconItalic,
|
|
6827
|
-
IconKey,
|
|
6828
|
-
IconKeyFilled,
|
|
6829
|
-
IconLaptop,
|
|
6830
6437
|
IconLayers,
|
|
6831
|
-
IconLayout,
|
|
6832
|
-
IconLifeBuoy,
|
|
6833
|
-
IconLightBulb,
|
|
6834
|
-
IconLink,
|
|
6835
|
-
IconLinkBreak,
|
|
6836
|
-
IconLinux,
|
|
6837
6438
|
IconListView,
|
|
6838
|
-
IconLocation,
|
|
6839
|
-
IconLock,
|
|
6840
6439
|
IconLogout,
|
|
6841
|
-
IconMacOS,
|
|
6842
6440
|
IconMail,
|
|
6843
|
-
IconMap,
|
|
6844
|
-
IconMapPin,
|
|
6845
|
-
IconMaximize,
|
|
6846
|
-
IconMegaphone,
|
|
6847
|
-
IconMenu,
|
|
6848
|
-
IconMic,
|
|
6849
|
-
IconMicrosoftTeams,
|
|
6850
|
-
IconMinimize,
|
|
6851
|
-
IconMinus,
|
|
6852
|
-
IconMonitor,
|
|
6853
6441
|
IconMoon,
|
|
6854
|
-
IconMoonFilled,
|
|
6855
|
-
IconMoreHorizontal,
|
|
6856
|
-
IconMoreVertical,
|
|
6857
|
-
IconMusic,
|
|
6858
|
-
IconNavigation,
|
|
6859
|
-
IconNodeJS,
|
|
6860
|
-
IconOffline,
|
|
6861
6442
|
IconOldWindow,
|
|
6862
|
-
IconOpenInApp,
|
|
6863
|
-
IconOpenInNew,
|
|
6864
|
-
IconPalette,
|
|
6865
6443
|
IconPanelRight,
|
|
6866
|
-
IconPaperclip,
|
|
6867
|
-
IconPauseCircle,
|
|
6868
|
-
IconPeople,
|
|
6869
|
-
IconPercent,
|
|
6870
6444
|
IconPerson,
|
|
6871
|
-
IconPhone,
|
|
6872
|
-
IconPin,
|
|
6873
6445
|
IconPlayCircle,
|
|
6874
6446
|
IconPlus,
|
|
6875
6447
|
IconPremium,
|
|
6876
|
-
IconPreview,
|
|
6877
|
-
IconPrinter,
|
|
6878
6448
|
IconQueryEditor,
|
|
6879
6449
|
IconQueryStack,
|
|
6880
|
-
IconQuestionAnswer,
|
|
6881
6450
|
IconRadar,
|
|
6882
|
-
IconRadioButtonUnchecked,
|
|
6883
6451
|
IconRecording,
|
|
6884
|
-
IconRedo,
|
|
6885
|
-
IconRefresh,
|
|
6886
|
-
IconReplay,
|
|
6887
6452
|
IconReplayFrame,
|
|
6888
|
-
IconReply,
|
|
6889
|
-
IconReport,
|
|
6890
6453
|
IconRobot,
|
|
6891
6454
|
IconRocket,
|
|
6892
|
-
IconSafari,
|
|
6893
6455
|
IconSave,
|
|
6894
6456
|
IconSearch,
|
|
6895
|
-
IconSelectAll,
|
|
6896
6457
|
IconSelectEvents,
|
|
6897
6458
|
IconShoppingCart,
|
|
6898
|
-
IconSkipBackward,
|
|
6899
|
-
IconSkipEnd,
|
|
6900
|
-
IconSkipStart,
|
|
6901
|
-
IconSlack,
|
|
6902
|
-
IconSlackExternal,
|
|
6903
6459
|
IconSpinner,
|
|
6904
|
-
IconStamphog,
|
|
6905
6460
|
IconStar,
|
|
6906
|
-
IconStore,
|
|
6907
6461
|
IconSubArrowRight,
|
|
6908
|
-
IconSubtitles,
|
|
6909
|
-
IconSubtitlesOff,
|
|
6910
6462
|
IconSun,
|
|
6911
6463
|
IconSurveyCard,
|
|
6912
6464
|
IconSurveys,
|
|
6913
|
-
IconSwapHoriz,
|
|
6914
6465
|
IconSync,
|
|
6915
6466
|
IconTableChart,
|
|
6916
6467
|
IconTerminal,
|
|
6917
|
-
IconTextSize,
|
|
6918
6468
|
IconToggle,
|
|
6919
6469
|
IconTrash,
|
|
6920
|
-
IconTrendingDown,
|
|
6921
|
-
IconTrendingFlat,
|
|
6922
|
-
IconTrendingFlatDown,
|
|
6923
6470
|
IconTuning,
|
|
6924
|
-
IconUnverifiedEvent,
|
|
6925
6471
|
IconUpload,
|
|
6926
|
-
IconVerifiedEvent,
|
|
6927
|
-
IconVerticalAlignCenter,
|
|
6928
6472
|
IconVolume,
|
|
6929
6473
|
IconVolumeOff,
|
|
6930
|
-
IconWeb,
|
|
6931
|
-
IconWindows,
|
|
6932
6474
|
Indicator,
|
|
6933
6475
|
Input,
|
|
6934
6476
|
InputGroup,
|