@flanksource/clicky-ui 0.1.0 → 0.2.1
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/README.md +29 -2
- package/dist/api-explorer.d.ts +5 -0
- package/dist/api-explorer.d.ts.map +1 -0
- package/dist/api-explorer.js +25 -0
- package/dist/api-explorer.js.map +1 -0
- package/dist/clicky.d.ts +2 -0
- package/dist/clicky.d.ts.map +1 -0
- package/dist/clicky.js +5 -0
- package/dist/clicky.js.map +1 -0
- package/dist/components/DatePicker.d.ts +18 -0
- package/dist/components/DatePicker.d.ts.map +1 -0
- package/dist/components/DatePicker.js +63 -0
- package/dist/components/DatePicker.js.map +1 -0
- package/dist/components/DateTimePicker.d.ts +18 -0
- package/dist/components/DateTimePicker.d.ts.map +1 -0
- package/dist/components/DateTimePicker.js +84 -0
- package/dist/components/DateTimePicker.js.map +1 -0
- package/dist/components/FilterBar.d.ts +180 -0
- package/dist/components/FilterBar.d.ts.map +1 -0
- package/dist/components/FilterBar.js +1685 -0
- package/dist/components/FilterBar.js.map +1 -0
- package/dist/components/MultiSelect.d.ts +19 -0
- package/dist/components/MultiSelect.d.ts.map +1 -0
- package/dist/components/MultiSelect.js +143 -0
- package/dist/components/MultiSelect.js.map +1 -0
- package/dist/components/RangeSlider.d.ts +16 -0
- package/dist/components/RangeSlider.d.ts.map +1 -0
- package/dist/components/RangeSlider.js +92 -0
- package/dist/components/RangeSlider.js.map +1 -0
- package/dist/components/button.d.ts +21 -0
- package/dist/components/button.d.ts.map +1 -0
- package/dist/components/button.js +126 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/density-switcher.d.ts +7 -0
- package/dist/components/density-switcher.d.ts.map +1 -0
- package/dist/components/density-switcher.js +32 -0
- package/dist/components/density-switcher.js.map +1 -0
- package/dist/components/icon-menu-picker.d.ts +22 -0
- package/dist/components/icon-menu-picker.d.ts.map +1 -0
- package/dist/components/icon-menu-picker.js +181 -0
- package/dist/components/icon-menu-picker.js.map +1 -0
- package/dist/components/select.d.ts +15 -0
- package/dist/components/select.d.ts.map +1 -0
- package/dist/components/select.js +39 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/theme-switcher.d.ts +7 -0
- package/dist/components/theme-switcher.d.ts.map +1 -0
- package/dist/components/theme-switcher.js +42 -0
- package/dist/components/theme-switcher.js.map +1 -0
- package/dist/components.d.ts +14 -0
- package/dist/components.d.ts.map +1 -0
- package/dist/components.js +31 -0
- package/dist/components.js.map +1 -0
- package/dist/data/AnsiHtml.d.ts +7 -0
- package/dist/data/AnsiHtml.d.ts.map +1 -0
- package/dist/data/AnsiHtml.js +71 -0
- package/dist/data/AnsiHtml.js.map +1 -0
- package/dist/data/Avatar.d.ts +32 -0
- package/dist/data/Avatar.d.ts.map +1 -0
- package/dist/data/Avatar.js +201 -0
- package/dist/data/Avatar.js.map +1 -0
- package/dist/data/AvatarBadge.d.ts +26 -0
- package/dist/data/AvatarBadge.d.ts.map +1 -0
- package/dist/data/AvatarBadge.js +104 -0
- package/dist/data/AvatarBadge.js.map +1 -0
- package/dist/data/Badge.d.ts +44 -0
- package/dist/data/Badge.d.ts.map +1 -0
- package/dist/data/Badge.js +667 -0
- package/dist/data/Badge.js.map +1 -0
- package/dist/data/Clicky.d.ts +147 -0
- package/dist/data/Clicky.d.ts.map +1 -0
- package/dist/data/Clicky.fixtures.d.ts +3 -0
- package/dist/data/Clicky.fixtures.d.ts.map +1 -0
- package/dist/data/Clicky.js +1960 -0
- package/dist/data/Clicky.js.map +1 -0
- package/dist/data/DataTable.d.ts +95 -0
- package/dist/data/DataTable.d.ts.map +1 -0
- package/dist/data/DataTable.js +1464 -0
- package/dist/data/DataTable.js.map +1 -0
- package/dist/data/FilterPill.d.ts +29 -0
- package/dist/data/FilterPill.d.ts.map +1 -0
- package/dist/data/FilterPill.js +153 -0
- package/dist/data/FilterPill.js.map +1 -0
- package/dist/data/Gauge.d.ts +15 -0
- package/dist/data/Gauge.d.ts.map +1 -0
- package/dist/data/Gauge.js +63 -0
- package/dist/data/Gauge.js.map +1 -0
- package/dist/data/Icon.d.ts +53 -0
- package/dist/data/Icon.d.ts.map +1 -0
- package/dist/data/Icon.js +115 -0
- package/dist/data/Icon.js.map +1 -0
- package/dist/data/JsonView.d.ts +8 -0
- package/dist/data/JsonView.d.ts.map +1 -0
- package/dist/data/JsonView.js +74 -0
- package/dist/data/JsonView.js.map +1 -0
- package/dist/data/KeyValueList.d.ts +17 -0
- package/dist/data/KeyValueList.d.ts.map +1 -0
- package/dist/data/KeyValueList.js +33 -0
- package/dist/data/KeyValueList.js.map +1 -0
- package/dist/data/LogViewer.d.ts +10 -0
- package/dist/data/LogViewer.d.ts.map +1 -0
- package/dist/data/LogViewer.js +46 -0
- package/dist/data/LogViewer.js.map +1 -0
- package/dist/data/LogsTable.d.ts +27 -0
- package/dist/data/LogsTable.d.ts.map +1 -0
- package/dist/data/LogsTable.js +580 -0
- package/dist/data/LogsTable.js.map +1 -0
- package/dist/data/Markdown.d.ts +6 -0
- package/dist/data/Markdown.d.ts.map +1 -0
- package/dist/data/Markdown.js +59 -0
- package/dist/data/Markdown.js.map +1 -0
- package/dist/data/MatrixTable.d.ts +22 -0
- package/dist/data/MatrixTable.d.ts.map +1 -0
- package/dist/data/MatrixTable.js +164 -0
- package/dist/data/MatrixTable.js.map +1 -0
- package/dist/data/MethodBadge.d.ts +6 -0
- package/dist/data/MethodBadge.d.ts.map +1 -0
- package/dist/data/MethodBadge.js +18 -0
- package/dist/data/MethodBadge.js.map +1 -0
- package/dist/data/ProgressBar.d.ts +13 -0
- package/dist/data/ProgressBar.d.ts.map +1 -0
- package/dist/data/ProgressBar.js +34 -0
- package/dist/data/ProgressBar.js.map +1 -0
- package/dist/data/SortableHeader.d.ts +12 -0
- package/dist/data/SortableHeader.d.ts.map +1 -0
- package/dist/data/SortableHeader.js +33 -0
- package/dist/data/SortableHeader.js.map +1 -0
- package/dist/data/TabButton.d.ts +12 -0
- package/dist/data/TabButton.d.ts.map +1 -0
- package/dist/data/TabButton.js +45 -0
- package/dist/data/TabButton.js.map +1 -0
- package/dist/data/Tree.d.ts +35 -0
- package/dist/data/Tree.d.ts.map +1 -0
- package/dist/data/Tree.js +236 -0
- package/dist/data/Tree.js.map +1 -0
- package/dist/data/TreeGroupHeader.d.ts +11 -0
- package/dist/data/TreeGroupHeader.d.ts.map +1 -0
- package/dist/data/TreeGroupHeader.js +41 -0
- package/dist/data/TreeGroupHeader.js.map +1 -0
- package/dist/data/TreeNode.d.ts +43 -0
- package/dist/data/TreeNode.d.ts.map +1 -0
- package/dist/data/TreeNode.js +100 -0
- package/dist/data/TreeNode.js.map +1 -0
- package/dist/data/cells/StatusDot.d.ts +11 -0
- package/dist/data/cells/StatusDot.d.ts.map +1 -0
- package/dist/data/cells/StatusDot.js +38 -0
- package/dist/data/cells/StatusDot.js.map +1 -0
- package/dist/data/cells/TagList.d.ts +59 -0
- package/dist/data/cells/TagList.d.ts.map +1 -0
- package/dist/data/cells/TagList.js +257 -0
- package/dist/data/cells/TagList.js.map +1 -0
- package/dist/data/cells/Timestamp.d.ts +46 -0
- package/dist/data/cells/Timestamp.d.ts.map +1 -0
- package/dist/data/cells/Timestamp.js +146 -0
- package/dist/data/cells/Timestamp.js.map +1 -0
- package/dist/data/cells/status-mapping.d.ts +8 -0
- package/dist/data/cells/status-mapping.d.ts.map +1 -0
- package/dist/data/cells/status-mapping.js +44 -0
- package/dist/data/cells/status-mapping.js.map +1 -0
- package/dist/data/code-highlight.d.ts +12 -0
- package/dist/data/code-highlight.d.ts.map +1 -0
- package/dist/data/code-highlight.js +28 -0
- package/dist/data/code-highlight.js.map +1 -0
- package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts +9 -0
- package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts.map +1 -0
- package/dist/data/diagnostics/DiagnosticsDetailPanel.js +445 -0
- package/dist/data/diagnostics/DiagnosticsDetailPanel.js.map +1 -0
- package/dist/data/diagnostics/DiagnosticsTree.d.ts +9 -0
- package/dist/data/diagnostics/DiagnosticsTree.d.ts.map +1 -0
- package/dist/data/diagnostics/DiagnosticsTree.js +78 -0
- package/dist/data/diagnostics/DiagnosticsTree.js.map +1 -0
- package/dist/data/diagnostics/ErrorDetails.d.ts +20 -0
- package/dist/data/diagnostics/ErrorDetails.d.ts.map +1 -0
- package/dist/data/diagnostics/ErrorDetails.js +157 -0
- package/dist/data/diagnostics/ErrorDetails.js.map +1 -0
- package/dist/data/diagnostics/GoroutineCard.d.ts +10 -0
- package/dist/data/diagnostics/GoroutineCard.d.ts.map +1 -0
- package/dist/data/diagnostics/GoroutineCard.js +75 -0
- package/dist/data/diagnostics/GoroutineCard.js.map +1 -0
- package/dist/data/diagnostics/JvmStackTrace.d.ts +11 -0
- package/dist/data/diagnostics/JvmStackTrace.d.ts.map +1 -0
- package/dist/data/diagnostics/JvmStackTrace.js +26 -0
- package/dist/data/diagnostics/JvmStackTrace.js.map +1 -0
- package/dist/data/diagnostics/RenderedStackTrace.d.ts +18 -0
- package/dist/data/diagnostics/RenderedStackTrace.d.ts.map +1 -0
- package/dist/data/diagnostics/RenderedStackTrace.js +235 -0
- package/dist/data/diagnostics/RenderedStackTrace.js.map +1 -0
- package/dist/data/diagnostics/ThreadCard.d.ts +10 -0
- package/dist/data/diagnostics/ThreadCard.d.ts.map +1 -0
- package/dist/data/diagnostics/ThreadCard.js +78 -0
- package/dist/data/diagnostics/ThreadCard.js.map +1 -0
- package/dist/data/diagnostics/error-diagnostics.d.ts +26 -0
- package/dist/data/diagnostics/error-diagnostics.d.ts.map +1 -0
- package/dist/data/diagnostics/error-diagnostics.js +108 -0
- package/dist/data/diagnostics/error-diagnostics.js.map +1 -0
- package/dist/data/diagnostics/fixtures.d.ts +3 -0
- package/dist/data/diagnostics/fixtures.d.ts.map +1 -0
- package/dist/data/diagnostics/jvm-stacktrace.d.ts +34 -0
- package/dist/data/diagnostics/jvm-stacktrace.d.ts.map +1 -0
- package/dist/data/diagnostics/jvm-stacktrace.js +190 -0
- package/dist/data/diagnostics/jvm-stacktrace.js.map +1 -0
- package/dist/data/diagnostics/stacktrace-parse.d.ts +11 -0
- package/dist/data/diagnostics/stacktrace-parse.d.ts.map +1 -0
- package/dist/data/diagnostics/stacktrace-parse.js +87 -0
- package/dist/data/diagnostics/stacktrace-parse.js.map +1 -0
- package/dist/data/diagnostics/stacktrace.d.ts +38 -0
- package/dist/data/diagnostics/stacktrace.d.ts.map +1 -0
- package/dist/data/diagnostics/stacktrace.js +119 -0
- package/dist/data/diagnostics/stacktrace.js.map +1 -0
- package/dist/data/diagnostics/types.d.ts +30 -0
- package/dist/data/diagnostics/types.d.ts.map +1 -0
- package/dist/data/diagnostics/utils.d.ts +8 -0
- package/dist/data/diagnostics/utils.d.ts.map +1 -0
- package/dist/data/diagnostics/utils.js +59 -0
- package/dist/data/diagnostics/utils.js.map +1 -0
- package/dist/data/har/HarPanel.d.ts +9 -0
- package/dist/data/har/HarPanel.d.ts.map +1 -0
- package/dist/data/har/HarPanel.js +175 -0
- package/dist/data/har/HarPanel.js.map +1 -0
- package/dist/data/har/fixtures.d.ts +3 -0
- package/dist/data/har/fixtures.d.ts.map +1 -0
- package/dist/data/har/types.d.ts +47 -0
- package/dist/data/har/types.d.ts.map +1 -0
- package/dist/data.d.ts +39 -0
- package/dist/data.d.ts.map +1 -0
- package/dist/data.js +109 -0
- package/dist/data.js.map +1 -0
- package/dist/hooks/use-density.d.ts +22 -0
- package/dist/hooks/use-density.d.ts.map +1 -0
- package/dist/hooks/use-density.js +54 -0
- package/dist/hooks/use-density.js.map +1 -0
- package/dist/hooks/use-history-route.d.ts +6 -0
- package/dist/hooks/use-history-route.d.ts.map +1 -0
- package/dist/hooks/use-history-route.js +31 -0
- package/dist/hooks/use-history-route.js.map +1 -0
- package/dist/hooks/use-sort.d.ts +17 -0
- package/dist/hooks/use-sort.d.ts.map +1 -0
- package/dist/hooks/use-sort.js +42 -0
- package/dist/hooks/use-sort.js.map +1 -0
- package/dist/hooks/use-theme.d.ts +17 -0
- package/dist/hooks/use-theme.d.ts.map +1 -0
- package/dist/hooks/use-theme.js +68 -0
- package/dist/hooks/use-theme.js.map +1 -0
- package/dist/hooks.d.ts +5 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +14 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +193 -0
- package/dist/index.js.map +1 -0
- package/dist/layout/Section.d.ts +23 -0
- package/dist/layout/Section.d.ts.map +1 -0
- package/dist/layout/Section.js +73 -0
- package/dist/layout/Section.js.map +1 -0
- package/dist/layout/SplitPane.d.ts +13 -0
- package/dist/layout/SplitPane.d.ts.map +1 -0
- package/dist/layout/SplitPane.js +72 -0
- package/dist/layout/SplitPane.js.map +1 -0
- package/dist/lib/palette.d.ts +4 -0
- package/dist/lib/palette.d.ts.map +1 -0
- package/dist/lib/palette.js +35 -0
- package/dist/lib/palette.js.map +1 -0
- package/dist/lib/size.d.ts +6 -0
- package/dist/lib/size.d.ts.map +1 -0
- package/dist/lib/size.js +14 -0
- package/dist/lib/size.js.map +1 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +9 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/overlay/HoverCard.d.ts +13 -0
- package/dist/overlay/HoverCard.d.ts.map +1 -0
- package/dist/overlay/HoverCard.js +170 -0
- package/dist/overlay/HoverCard.js.map +1 -0
- package/dist/overlay/Modal.d.ts +17 -0
- package/dist/overlay/Modal.d.ts.map +1 -0
- package/dist/overlay/Modal.js +91 -0
- package/dist/overlay/Modal.js.map +1 -0
- package/dist/rpc/AcceptPicker.d.ts +52 -0
- package/dist/rpc/AcceptPicker.d.ts.map +1 -0
- package/dist/rpc/AcceptPicker.js +126 -0
- package/dist/rpc/AcceptPicker.js.map +1 -0
- package/dist/rpc/ApiExplorer.d.ts +11 -0
- package/dist/rpc/ApiExplorer.d.ts.map +1 -0
- package/dist/rpc/ApiExplorer.js +37 -0
- package/dist/rpc/ApiExplorer.js.map +1 -0
- package/dist/rpc/CommandForm.d.ts +15 -0
- package/dist/rpc/CommandForm.d.ts.map +1 -0
- package/dist/rpc/CommandForm.js +356 -0
- package/dist/rpc/CommandForm.js.map +1 -0
- package/dist/rpc/CommandOutput.d.ts +11 -0
- package/dist/rpc/CommandOutput.d.ts.map +1 -0
- package/dist/rpc/CommandOutput.js +195 -0
- package/dist/rpc/CommandOutput.js.map +1 -0
- package/dist/rpc/EndpointList.d.ts +18 -0
- package/dist/rpc/EndpointList.d.ts.map +1 -0
- package/dist/rpc/EndpointList.js +56 -0
- package/dist/rpc/EndpointList.js.map +1 -0
- package/dist/rpc/EntityExplorerApp.d.ts +15 -0
- package/dist/rpc/EntityExplorerApp.d.ts.map +1 -0
- package/dist/rpc/EntityExplorerApp.js +282 -0
- package/dist/rpc/EntityExplorerApp.js.map +1 -0
- package/dist/rpc/ExecutionResult.d.ts +14 -0
- package/dist/rpc/ExecutionResult.d.ts.map +1 -0
- package/dist/rpc/ExecutionResult.js +51 -0
- package/dist/rpc/ExecutionResult.js.map +1 -0
- package/dist/rpc/FilterForm.d.ts +22 -0
- package/dist/rpc/FilterForm.d.ts.map +1 -0
- package/dist/rpc/FilterForm.js +392 -0
- package/dist/rpc/FilterForm.js.map +1 -0
- package/dist/rpc/InlineError.d.ts +7 -0
- package/dist/rpc/InlineError.d.ts.map +1 -0
- package/dist/rpc/InlineError.js +54 -0
- package/dist/rpc/InlineError.js.map +1 -0
- package/dist/rpc/OperationActionDialog.d.ts +12 -0
- package/dist/rpc/OperationActionDialog.d.ts.map +1 -0
- package/dist/rpc/OperationActionDialog.js +105 -0
- package/dist/rpc/OperationActionDialog.js.map +1 -0
- package/dist/rpc/OperationCatalog.d.ts +21 -0
- package/dist/rpc/OperationCatalog.d.ts.map +1 -0
- package/dist/rpc/OperationCatalog.js +339 -0
- package/dist/rpc/OperationCatalog.js.map +1 -0
- package/dist/rpc/OperationCommandPage.d.ts +22 -0
- package/dist/rpc/OperationCommandPage.d.ts.map +1 -0
- package/dist/rpc/OperationCommandPage.js +484 -0
- package/dist/rpc/OperationCommandPage.js.map +1 -0
- package/dist/rpc/OperationEntityPage.d.ts +23 -0
- package/dist/rpc/OperationEntityPage.d.ts.map +1 -0
- package/dist/rpc/OperationEntityPage.js +218 -0
- package/dist/rpc/OperationEntityPage.js.map +1 -0
- package/dist/rpc/classify.d.ts +8 -0
- package/dist/rpc/classify.d.ts.map +1 -0
- package/dist/rpc/classify.js +76 -0
- package/dist/rpc/classify.js.map +1 -0
- package/dist/rpc/clickyMetadata.d.ts +12 -0
- package/dist/rpc/clickyMetadata.d.ts.map +1 -0
- package/dist/rpc/clickyMetadata.js +71 -0
- package/dist/rpc/clickyMetadata.js.map +1 -0
- package/dist/rpc/formMetadata.d.ts +27 -0
- package/dist/rpc/formMetadata.d.ts.map +1 -0
- package/dist/rpc/formMetadata.js +250 -0
- package/dist/rpc/formMetadata.js.map +1 -0
- package/dist/rpc/types.d.ts +109 -0
- package/dist/rpc/types.d.ts.map +1 -0
- package/dist/rpc/types.js +8 -0
- package/dist/rpc/types.js.map +1 -0
- package/dist/rpc/useOperations.d.ts +346 -0
- package/dist/rpc/useOperations.d.ts.map +1 -0
- package/dist/rpc/useOperations.js +31 -0
- package/dist/rpc/useOperations.js.map +1 -0
- package/dist/rpc.d.ts +14 -0
- package/dist/rpc.d.ts.map +1 -0
- package/dist/rpc.js +37 -0
- package/dist/rpc.js.map +1 -0
- package/dist/styles.css +2 -0
- package/dist/styles.d.ts +1 -0
- package/dist/styles.d.ts.map +1 -0
- package/dist/styles.js +2 -0
- package/dist/styles.js.map +1 -0
- package/dist/tailwind-preset.d.ts +4 -0
- package/dist/tailwind-preset.d.ts.map +1 -0
- package/dist/tailwind-preset.js +69 -0
- package/dist/tailwind-preset.js.map +1 -0
- package/dist/utils.d.ts +4 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +12 -0
- package/dist/utils.js.map +1 -0
- package/package.json +83 -40
- package/dist/index.d.mts +0 -834
- package/dist/index.d.mts.map +0 -1
- package/dist/index.mjs +0 -2918
- package/dist/index.mjs.map +0 -1
- package/dist/tailwind-preset.d.mts +0 -7
- package/dist/tailwind-preset.d.mts.map +0 -1
- package/dist/tailwind-preset.mjs +0 -64
- package/dist/tailwind-preset.mjs.map +0 -1
- package/src/styles/tokens.css +0 -78
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export interface HARHeader {
|
|
2
|
+
name: string;
|
|
3
|
+
value: string;
|
|
4
|
+
}
|
|
5
|
+
export interface HARPostData {
|
|
6
|
+
mimeType: string;
|
|
7
|
+
text: string;
|
|
8
|
+
}
|
|
9
|
+
export interface HARContent {
|
|
10
|
+
size: number;
|
|
11
|
+
mimeType?: string;
|
|
12
|
+
text?: string;
|
|
13
|
+
truncated?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface HARRequest {
|
|
16
|
+
method: string;
|
|
17
|
+
url: string;
|
|
18
|
+
httpVersion?: string;
|
|
19
|
+
headers?: HARHeader[];
|
|
20
|
+
queryString?: HARHeader[];
|
|
21
|
+
postData?: HARPostData;
|
|
22
|
+
headersSize?: number;
|
|
23
|
+
bodySize?: number;
|
|
24
|
+
}
|
|
25
|
+
export interface HARResponse {
|
|
26
|
+
status: number;
|
|
27
|
+
statusText?: string;
|
|
28
|
+
httpVersion?: string;
|
|
29
|
+
headers?: HARHeader[];
|
|
30
|
+
content?: HARContent;
|
|
31
|
+
redirectURL?: string;
|
|
32
|
+
headersSize?: number;
|
|
33
|
+
bodySize: number;
|
|
34
|
+
}
|
|
35
|
+
export interface HAREntry extends Record<string, unknown> {
|
|
36
|
+
startedDateTime?: string;
|
|
37
|
+
time: number;
|
|
38
|
+
request: HARRequest;
|
|
39
|
+
response: HARResponse;
|
|
40
|
+
cache?: unknown;
|
|
41
|
+
timings?: {
|
|
42
|
+
send?: number;
|
|
43
|
+
wait?: number;
|
|
44
|
+
receive?: number;
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/data/har/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAS,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9D"}
|
package/dist/data.d.ts
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export { AnsiHtml, type AnsiHtmlProps } from './data/AnsiHtml';
|
|
2
|
+
export { Avatar, type AvatarKind, type AvatarProps, type AvatarVariant } from './data/Avatar';
|
|
3
|
+
export { AvatarBadge, type AvatarBadgeProps } from './data/AvatarBadge';
|
|
4
|
+
export { Badge, badgeVariants, type BadgeProps, type BadgeShape, type BadgeSize, type BadgeStatus, type BadgeTone, type BadgeTruncate, type BadgeVariant, } from './data/Badge';
|
|
5
|
+
export { DataTable, inferColumns, type DataTableColumn, type DataTableColumnInput, type DataTableColumnKind, type DataTableProps, type StatusOptions, type TagsOptions, type TimestampOptions, } from './data/DataTable';
|
|
6
|
+
export { Timestamp, chooseTimestampFormat, formatTimestamp, parseTimestamp, modeToFormat, type TimestampFormat, type TimestampMode, type TimestampProps, } from './data/cells/Timestamp';
|
|
7
|
+
export { TagActionsProvider, TagList, normalizeTags, splitTagToken, tagActionsFromRecord, tagFilterTokens, useTagActions, useTagActionsValue, type NormalizedTag, type TagActionsContextValue, type TagFilterMode, type TagInput, type TagListProps, type TagsValue, } from './data/cells/TagList';
|
|
8
|
+
export { StatusDot, type StatusDotProps, type StatusDotSize } from './data/cells/StatusDot';
|
|
9
|
+
export { normalizeStatus, STATUS_TOKEN_GROUPS } from './data/cells/status-mapping';
|
|
10
|
+
export { FilterPill, FilterPillGroup, FilterSeparator, type FilterPillProps, type FilterPillGroupProps, type FilterMode, } from './data/FilterPill';
|
|
11
|
+
export { Gauge, type GaugeProps, type GaugeTone } from './data/Gauge';
|
|
12
|
+
export { Icon, setFallbackIconProvider, type FallbackIconProps, type IconProps, type IconStyle, type IconTone, } from './data/Icon';
|
|
13
|
+
export { JsonView, type JsonViewProps } from './data/JsonView';
|
|
14
|
+
export { KeyValueList, type KeyValueListItem, type KeyValueListProps } from './data/KeyValueList';
|
|
15
|
+
export { LogViewer, type LogViewerProps } from './data/LogViewer';
|
|
16
|
+
export { LogsTable, normalizeLogsTableRows, type LogsTableInput, type LogsTableProps, type LogsTableRow, } from './data/LogsTable';
|
|
17
|
+
export { MatrixTable, type MatrixTableProps, type MatrixTableRow } from './data/MatrixTable';
|
|
18
|
+
export { Markdown, type MarkdownProps } from './data/Markdown';
|
|
19
|
+
export { MethodBadge, type MethodBadgeProps } from './data/MethodBadge';
|
|
20
|
+
export { ProgressBar, type ProgressBarProps, type ProgressSegment } from './data/ProgressBar';
|
|
21
|
+
export { SortableHeader, type SortableHeaderProps } from './data/SortableHeader';
|
|
22
|
+
export { TabButton, type TabButtonProps } from './data/TabButton';
|
|
23
|
+
export { Tree, type TreeProps } from './data/Tree';
|
|
24
|
+
export { TreeNode, type TreeNodeProps, type TreeRowContext } from './data/TreeNode';
|
|
25
|
+
export { TreeGroupHeader, type TreeGroupHeaderProps } from './data/TreeGroupHeader';
|
|
26
|
+
export { DiagnosticsTree, type DiagnosticsTreeProps } from './data/diagnostics/DiagnosticsTree';
|
|
27
|
+
export { DiagnosticsDetailPanel, type DiagnosticsDetailPanelProps, } from './data/diagnostics/DiagnosticsDetailPanel';
|
|
28
|
+
export type { ProcessNode, StackCapture, RunMeta } from './data/diagnostics/types';
|
|
29
|
+
export { findProcessByPID, countProcesses, processLabel, processStateIcon, processStateColor, } from './data/diagnostics/utils';
|
|
30
|
+
export { parseGoroutineDump, countGoroutinesByState, parseStackDump, detectDumpFormat, countStackByState, type ParsedGoroutine, type ParsedGoroutineFrame, type ParsedStack, type DumpFormat, } from './data/diagnostics/stacktrace';
|
|
31
|
+
export { parseJvmThreadDump, countThreadsByState, type ParsedThread, type ParsedThreadFrame, } from './data/diagnostics/jvm-stacktrace';
|
|
32
|
+
export { JvmStackTrace, JvmStackFrameRow, type JvmStackTraceProps, } from './data/diagnostics/JvmStackTrace';
|
|
33
|
+
export { StackTrace, type StackTraceProps, type StackTraceSourceResolver, } from './data/diagnostics/RenderedStackTrace';
|
|
34
|
+
export { parseJavaStackTrace, type ParsedStackFrame, type ParsedStackTrace, } from './data/diagnostics/stacktrace-parse';
|
|
35
|
+
export { ErrorDetails, PrettyStackTrace, CopyBadge, type ErrorDetailsProps, } from './data/diagnostics/ErrorDetails';
|
|
36
|
+
export { normalizeErrorDiagnostics, parseDiagnosticsStackTrace, parseInlineJsonContextValue, compactStackPath, isApplicationStackFrame, type ErrorDiagnostics, type ErrorStackFrame, type ParsedErrorStackTrace, } from './data/diagnostics/error-diagnostics';
|
|
37
|
+
export { HarPanel, type HarPanelProps } from './data/har/HarPanel';
|
|
38
|
+
export type { HAREntry, HARRequest, HARResponse, HARContent, HARHeader, HARPostData, } from './data/har/types';
|
|
39
|
+
//# sourceMappingURL=data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}
|
package/dist/data.js
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { AnsiHtml } from "./data/AnsiHtml.js";
|
|
2
|
+
import { Avatar } from "./data/Avatar.js";
|
|
3
|
+
import { AvatarBadge } from "./data/AvatarBadge.js";
|
|
4
|
+
import { Badge, badgeVariants } from "./data/Badge.js";
|
|
5
|
+
import { DataTable, inferColumns } from "./data/DataTable.js";
|
|
6
|
+
import { Timestamp, chooseTimestampFormat, formatTimestamp, modeToFormat, parseTimestamp } from "./data/cells/Timestamp.js";
|
|
7
|
+
import { TagActionsProvider, TagList, normalizeTags, splitTagToken, tagActionsFromRecord, tagFilterTokens, useTagActions, useTagActionsValue } from "./data/cells/TagList.js";
|
|
8
|
+
import { StatusDot } from "./data/cells/StatusDot.js";
|
|
9
|
+
import { STATUS_TOKEN_GROUPS, normalizeStatus } from "./data/cells/status-mapping.js";
|
|
10
|
+
import { FilterPill, FilterPillGroup, FilterSeparator } from "./data/FilterPill.js";
|
|
11
|
+
import { Gauge } from "./data/Gauge.js";
|
|
12
|
+
import { Icon, setFallbackIconProvider } from "./data/Icon.js";
|
|
13
|
+
import { JsonView } from "./data/JsonView.js";
|
|
14
|
+
import { KeyValueList } from "./data/KeyValueList.js";
|
|
15
|
+
import { LogViewer } from "./data/LogViewer.js";
|
|
16
|
+
import { LogsTable, normalizeLogsTableRows } from "./data/LogsTable.js";
|
|
17
|
+
import { MatrixTable } from "./data/MatrixTable.js";
|
|
18
|
+
import { Markdown } from "./data/Markdown.js";
|
|
19
|
+
import { MethodBadge } from "./data/MethodBadge.js";
|
|
20
|
+
import { ProgressBar } from "./data/ProgressBar.js";
|
|
21
|
+
import { SortableHeader } from "./data/SortableHeader.js";
|
|
22
|
+
import { TabButton } from "./data/TabButton.js";
|
|
23
|
+
import { Tree } from "./data/Tree.js";
|
|
24
|
+
import { TreeNode } from "./data/TreeNode.js";
|
|
25
|
+
import { TreeGroupHeader } from "./data/TreeGroupHeader.js";
|
|
26
|
+
import { DiagnosticsTree } from "./data/diagnostics/DiagnosticsTree.js";
|
|
27
|
+
import { DiagnosticsDetailPanel } from "./data/diagnostics/DiagnosticsDetailPanel.js";
|
|
28
|
+
import { countProcesses, findProcessByPID, processLabel, processStateColor, processStateIcon } from "./data/diagnostics/utils.js";
|
|
29
|
+
import { countGoroutinesByState, countStackByState, detectDumpFormat, parseGoroutineDump, parseStackDump } from "./data/diagnostics/stacktrace.js";
|
|
30
|
+
import { countThreadsByState, parseJvmThreadDump } from "./data/diagnostics/jvm-stacktrace.js";
|
|
31
|
+
import { JvmStackFrameRow, JvmStackTrace } from "./data/diagnostics/JvmStackTrace.js";
|
|
32
|
+
import { StackTrace } from "./data/diagnostics/RenderedStackTrace.js";
|
|
33
|
+
import { parseJavaStackTrace } from "./data/diagnostics/stacktrace-parse.js";
|
|
34
|
+
import { CopyBadge, ErrorDetails, PrettyStackTrace } from "./data/diagnostics/ErrorDetails.js";
|
|
35
|
+
import { compactStackPath, isApplicationStackFrame, normalizeErrorDiagnostics, parseDiagnosticsStackTrace, parseInlineJsonContextValue } from "./data/diagnostics/error-diagnostics.js";
|
|
36
|
+
import { HarPanel } from "./data/har/HarPanel.js";
|
|
37
|
+
export {
|
|
38
|
+
AnsiHtml,
|
|
39
|
+
Avatar,
|
|
40
|
+
AvatarBadge,
|
|
41
|
+
Badge,
|
|
42
|
+
CopyBadge,
|
|
43
|
+
DataTable,
|
|
44
|
+
DiagnosticsDetailPanel,
|
|
45
|
+
DiagnosticsTree,
|
|
46
|
+
ErrorDetails,
|
|
47
|
+
FilterPill,
|
|
48
|
+
FilterPillGroup,
|
|
49
|
+
FilterSeparator,
|
|
50
|
+
Gauge,
|
|
51
|
+
HarPanel,
|
|
52
|
+
Icon,
|
|
53
|
+
JsonView,
|
|
54
|
+
JvmStackFrameRow,
|
|
55
|
+
JvmStackTrace,
|
|
56
|
+
KeyValueList,
|
|
57
|
+
LogViewer,
|
|
58
|
+
LogsTable,
|
|
59
|
+
Markdown,
|
|
60
|
+
MatrixTable,
|
|
61
|
+
MethodBadge,
|
|
62
|
+
PrettyStackTrace,
|
|
63
|
+
ProgressBar,
|
|
64
|
+
STATUS_TOKEN_GROUPS,
|
|
65
|
+
SortableHeader,
|
|
66
|
+
StackTrace,
|
|
67
|
+
StatusDot,
|
|
68
|
+
TabButton,
|
|
69
|
+
TagActionsProvider,
|
|
70
|
+
TagList,
|
|
71
|
+
Timestamp,
|
|
72
|
+
Tree,
|
|
73
|
+
TreeGroupHeader,
|
|
74
|
+
TreeNode,
|
|
75
|
+
badgeVariants,
|
|
76
|
+
chooseTimestampFormat,
|
|
77
|
+
compactStackPath,
|
|
78
|
+
countGoroutinesByState,
|
|
79
|
+
countProcesses,
|
|
80
|
+
countStackByState,
|
|
81
|
+
countThreadsByState,
|
|
82
|
+
detectDumpFormat,
|
|
83
|
+
findProcessByPID,
|
|
84
|
+
formatTimestamp,
|
|
85
|
+
inferColumns,
|
|
86
|
+
isApplicationStackFrame,
|
|
87
|
+
modeToFormat,
|
|
88
|
+
normalizeErrorDiagnostics,
|
|
89
|
+
normalizeLogsTableRows,
|
|
90
|
+
normalizeStatus,
|
|
91
|
+
normalizeTags,
|
|
92
|
+
parseDiagnosticsStackTrace,
|
|
93
|
+
parseGoroutineDump,
|
|
94
|
+
parseInlineJsonContextValue,
|
|
95
|
+
parseJavaStackTrace,
|
|
96
|
+
parseJvmThreadDump,
|
|
97
|
+
parseStackDump,
|
|
98
|
+
parseTimestamp,
|
|
99
|
+
processLabel,
|
|
100
|
+
processStateColor,
|
|
101
|
+
processStateIcon,
|
|
102
|
+
setFallbackIconProvider,
|
|
103
|
+
splitTagToken,
|
|
104
|
+
tagActionsFromRecord,
|
|
105
|
+
tagFilterTokens,
|
|
106
|
+
useTagActions,
|
|
107
|
+
useTagActionsValue
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=data.js.map
|
package/dist/data.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export type Density = "compact" | "comfortable" | "spacious";
|
|
3
|
+
type DensityContextValue = {
|
|
4
|
+
density: Density;
|
|
5
|
+
setDensity: (next: Density) => void;
|
|
6
|
+
};
|
|
7
|
+
export type DensityProviderProps = {
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
defaultDensity?: Density;
|
|
10
|
+
storageKey?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare function DensityProvider({ children, defaultDensity, storageKey, }: DensityProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export declare function useDensity(): DensityContextValue;
|
|
14
|
+
/**
|
|
15
|
+
* Non-throwing density read. Returns the context value if a `<DensityProvider>`
|
|
16
|
+
* is mounted, otherwise reads the current `data-density` attribute on
|
|
17
|
+
* `<html>`, falling back to `comfortable`. Use inside leaf components that
|
|
18
|
+
* should respect density without requiring their host to mount a provider.
|
|
19
|
+
*/
|
|
20
|
+
export declare function useDensityValue(): Density;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=use-density.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-density.d.ts","sourceRoot":"","sources":["../../src/hooks/use-density.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,aAAa,GAAG,UAAU,CAAC;AAE7D,KAAK,mBAAmB,GAAG;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACrC,CAAC;AAkBF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,cAA8B,EAC9B,UAAwB,GACzB,EAAE,oBAAoB,2CAqBtB;AAED,wBAAgB,UAAU,IAAI,mBAAmB,CAIhD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAMzC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useContext, createContext, useState, useEffect, useCallback, useMemo } from "react";
|
|
3
|
+
const STORAGE_KEY = "clicky-ui-density";
|
|
4
|
+
const DATA_ATTR = "data-density";
|
|
5
|
+
const DensityContext = createContext(null);
|
|
6
|
+
function readStored() {
|
|
7
|
+
if (typeof window === "undefined") return null;
|
|
8
|
+
const raw = window.localStorage.getItem(STORAGE_KEY);
|
|
9
|
+
return raw === "compact" || raw === "comfortable" || raw === "spacious" ? raw : null;
|
|
10
|
+
}
|
|
11
|
+
function apply(density) {
|
|
12
|
+
if (typeof document === "undefined") return;
|
|
13
|
+
document.documentElement.setAttribute(DATA_ATTR, density);
|
|
14
|
+
}
|
|
15
|
+
function DensityProvider({
|
|
16
|
+
children,
|
|
17
|
+
defaultDensity = "comfortable",
|
|
18
|
+
storageKey = STORAGE_KEY
|
|
19
|
+
}) {
|
|
20
|
+
const [density, setDensityState] = useState(() => {
|
|
21
|
+
if (typeof window === "undefined") return defaultDensity;
|
|
22
|
+
return readStored() ?? defaultDensity;
|
|
23
|
+
});
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
apply(density);
|
|
26
|
+
if (typeof window !== "undefined") {
|
|
27
|
+
window.localStorage.setItem(storageKey, density);
|
|
28
|
+
}
|
|
29
|
+
}, [density, storageKey]);
|
|
30
|
+
const setDensity = useCallback((next) => setDensityState(next), []);
|
|
31
|
+
const value = useMemo(
|
|
32
|
+
() => ({ density, setDensity }),
|
|
33
|
+
[density, setDensity]
|
|
34
|
+
);
|
|
35
|
+
return /* @__PURE__ */ jsx(DensityContext.Provider, { value, children });
|
|
36
|
+
}
|
|
37
|
+
function useDensity() {
|
|
38
|
+
const ctx = useContext(DensityContext);
|
|
39
|
+
if (!ctx) throw new Error("useDensity must be used inside <DensityProvider>");
|
|
40
|
+
return ctx;
|
|
41
|
+
}
|
|
42
|
+
function useDensityValue() {
|
|
43
|
+
const ctx = useContext(DensityContext);
|
|
44
|
+
if (ctx) return ctx.density;
|
|
45
|
+
if (typeof document === "undefined") return "comfortable";
|
|
46
|
+
const raw = document.documentElement.getAttribute("data-density");
|
|
47
|
+
return raw === "compact" || raw === "spacious" ? raw : "comfortable";
|
|
48
|
+
}
|
|
49
|
+
export {
|
|
50
|
+
DensityProvider,
|
|
51
|
+
useDensity,
|
|
52
|
+
useDensityValue
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=use-density.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-density.js","sources":["../../src/hooks/use-density.tsx"],"sourcesContent":["import {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n type ReactNode,\n} from \"react\";\n\nexport type Density = \"compact\" | \"comfortable\" | \"spacious\";\n\ntype DensityContextValue = {\n density: Density;\n setDensity: (next: Density) => void;\n};\n\nconst STORAGE_KEY = \"clicky-ui-density\";\nconst DATA_ATTR = \"data-density\";\n\nconst DensityContext = createContext<DensityContextValue | null>(null);\n\nfunction readStored(): Density | null {\n if (typeof window === \"undefined\") return null;\n const raw = window.localStorage.getItem(STORAGE_KEY);\n return raw === \"compact\" || raw === \"comfortable\" || raw === \"spacious\" ? raw : null;\n}\n\nfunction apply(density: Density): void {\n if (typeof document === \"undefined\") return;\n document.documentElement.setAttribute(DATA_ATTR, density);\n}\n\nexport type DensityProviderProps = {\n children: ReactNode;\n defaultDensity?: Density;\n storageKey?: string;\n};\n\nexport function DensityProvider({\n children,\n defaultDensity = \"comfortable\",\n storageKey = STORAGE_KEY,\n}: DensityProviderProps) {\n const [density, setDensityState] = useState<Density>(() => {\n if (typeof window === \"undefined\") return defaultDensity;\n return readStored() ?? defaultDensity;\n });\n\n useEffect(() => {\n apply(density);\n if (typeof window !== \"undefined\") {\n window.localStorage.setItem(storageKey, density);\n }\n }, [density, storageKey]);\n\n const setDensity = useCallback((next: Density) => setDensityState(next), []);\n\n const value = useMemo<DensityContextValue>(\n () => ({ density, setDensity }),\n [density, setDensity],\n );\n\n return <DensityContext.Provider value={value}>{children}</DensityContext.Provider>;\n}\n\nexport function useDensity(): DensityContextValue {\n const ctx = useContext(DensityContext);\n if (!ctx) throw new Error(\"useDensity must be used inside <DensityProvider>\");\n return ctx;\n}\n\n/**\n * Non-throwing density read. Returns the context value if a `<DensityProvider>`\n * is mounted, otherwise reads the current `data-density` attribute on\n * `<html>`, falling back to `comfortable`. Use inside leaf components that\n * should respect density without requiring their host to mount a provider.\n */\nexport function useDensityValue(): Density {\n const ctx = useContext(DensityContext);\n if (ctx) return ctx.density;\n if (typeof document === \"undefined\") return \"comfortable\";\n const raw = document.documentElement.getAttribute(\"data-density\");\n return raw === \"compact\" || raw === \"spacious\" ? raw : \"comfortable\";\n}\n"],"names":[],"mappings":";;AAiBA,MAAM,cAAc;AACpB,MAAM,YAAY;AAElB,MAAM,iBAAiB,cAA0C,IAAI;AAErE,SAAS,aAA6B;AACpC,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,QAAM,MAAM,OAAO,aAAa,QAAQ,WAAW;AACnD,SAAO,QAAQ,aAAa,QAAQ,iBAAiB,QAAQ,aAAa,MAAM;AAClF;AAEA,SAAS,MAAM,SAAwB;AACrC,MAAI,OAAO,aAAa,YAAa;AACrC,WAAS,gBAAgB,aAAa,WAAW,OAAO;AAC1D;AAQO,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA,iBAAiB;AAAA,EACjB,aAAa;AACf,GAAyB;AACvB,QAAM,CAAC,SAAS,eAAe,IAAI,SAAkB,MAAM;AACzD,QAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,WAAO,gBAAgB;AAAA,EACzB,CAAC;AAED,YAAU,MAAM;AACd,UAAM,OAAO;AACb,QAAI,OAAO,WAAW,aAAa;AACjC,aAAO,aAAa,QAAQ,YAAY,OAAO;AAAA,IACjD;AAAA,EACF,GAAG,CAAC,SAAS,UAAU,CAAC;AAExB,QAAM,aAAa,YAAY,CAAC,SAAkB,gBAAgB,IAAI,GAAG,EAAE;AAE3E,QAAM,QAAQ;AAAA,IACZ,OAAO,EAAE,SAAS;IAClB,CAAC,SAAS,UAAU;AAAA,EAAA;AAGtB,SAAO,oBAAC,eAAe,UAAf,EAAwB,OAAe,SAAA,CAAS;AAC1D;AAEO,SAAS,aAAkC;AAChD,QAAM,MAAM,WAAW,cAAc;AACrC,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,kDAAkD;AAC5E,SAAO;AACT;AAQO,SAAS,kBAA2B;AACzC,QAAM,MAAM,WAAW,cAAc;AACrC,MAAI,YAAY,IAAI;AACpB,MAAI,OAAO,aAAa,YAAa,QAAO;AAC5C,QAAM,MAAM,SAAS,gBAAgB,aAAa,cAAc;AAChE,SAAO,QAAQ,aAAa,QAAQ,aAAa,MAAM;AACzD;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type UseHistoryRouteOptions<R> = {
|
|
2
|
+
parse: (pathname: string, search: string) => R;
|
|
3
|
+
build: (route: R) => string;
|
|
4
|
+
};
|
|
5
|
+
export declare function useHistoryRoute<R>(options: UseHistoryRouteOptions<R>): [R, (next: Partial<R> | ((prev: R) => R)) => void];
|
|
6
|
+
//# sourceMappingURL=use-history-route.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-history-route.d.ts","sourceRoot":"","sources":["../../src/hooks/use-history-route.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI;IACtC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,CAAC;IAC/C,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC;CAC7B,CAAC;AAEF,wBAAgB,eAAe,CAAC,CAAC,EAC/B,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,GACjC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAgCpD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { useState, useEffect, useCallback } from "react";
|
|
2
|
+
function useHistoryRoute(options) {
|
|
3
|
+
const { parse, build } = options;
|
|
4
|
+
const [route, setRoute] = useState(
|
|
5
|
+
() => typeof window === "undefined" ? parse("/", "") : parse(window.location.pathname, window.location.search)
|
|
6
|
+
);
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
const onPop = () => setRoute(parse(window.location.pathname, window.location.search));
|
|
9
|
+
window.addEventListener("popstate", onPop);
|
|
10
|
+
return () => window.removeEventListener("popstate", onPop);
|
|
11
|
+
}, [parse]);
|
|
12
|
+
const navigate = useCallback(
|
|
13
|
+
(next) => {
|
|
14
|
+
setRoute((prev) => {
|
|
15
|
+
const merged = typeof next === "function" ? next(prev) : { ...prev, ...next };
|
|
16
|
+
const path = build(merged);
|
|
17
|
+
if (typeof window !== "undefined") {
|
|
18
|
+
const current = window.location.pathname + window.location.search;
|
|
19
|
+
if (current !== path) window.history.pushState(null, "", path);
|
|
20
|
+
}
|
|
21
|
+
return merged;
|
|
22
|
+
});
|
|
23
|
+
},
|
|
24
|
+
[build]
|
|
25
|
+
);
|
|
26
|
+
return [route, navigate];
|
|
27
|
+
}
|
|
28
|
+
export {
|
|
29
|
+
useHistoryRoute
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=use-history-route.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-history-route.js","sources":["../../src/hooks/use-history-route.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from \"react\";\n\nexport type UseHistoryRouteOptions<R> = {\n parse: (pathname: string, search: string) => R;\n build: (route: R) => string;\n};\n\nexport function useHistoryRoute<R>(\n options: UseHistoryRouteOptions<R>,\n): [R, (next: Partial<R> | ((prev: R) => R)) => void] {\n const { parse, build } = options;\n\n const [route, setRoute] = useState<R>(() =>\n typeof window === \"undefined\"\n ? parse(\"/\", \"\")\n : parse(window.location.pathname, window.location.search),\n );\n\n useEffect(() => {\n const onPop = () => setRoute(parse(window.location.pathname, window.location.search));\n window.addEventListener(\"popstate\", onPop);\n return () => window.removeEventListener(\"popstate\", onPop);\n }, [parse]);\n\n const navigate = useCallback(\n (next: Partial<R> | ((prev: R) => R)) => {\n setRoute((prev) => {\n const merged =\n typeof next === \"function\" ? (next as (p: R) => R)(prev) : ({ ...prev, ...next } as R);\n const path = build(merged);\n if (typeof window !== \"undefined\") {\n const current = window.location.pathname + window.location.search;\n if (current !== path) window.history.pushState(null, \"\", path);\n }\n return merged;\n });\n },\n [build],\n );\n\n return [route, navigate];\n}\n"],"names":[],"mappings":";AAOO,SAAS,gBACd,SACoD;AACpD,QAAM,EAAE,OAAO,MAAA,IAAU;AAEzB,QAAM,CAAC,OAAO,QAAQ,IAAI;AAAA,IAAY,MACpC,OAAO,WAAW,cACd,MAAM,KAAK,EAAE,IACb,MAAM,OAAO,SAAS,UAAU,OAAO,SAAS,MAAM;AAAA,EAAA;AAG5D,YAAU,MAAM;AACd,UAAM,QAAQ,MAAM,SAAS,MAAM,OAAO,SAAS,UAAU,OAAO,SAAS,MAAM,CAAC;AACpF,WAAO,iBAAiB,YAAY,KAAK;AACzC,WAAO,MAAM,OAAO,oBAAoB,YAAY,KAAK;AAAA,EAC3D,GAAG,CAAC,KAAK,CAAC;AAEV,QAAM,WAAW;AAAA,IACf,CAAC,SAAwC;AACvC,eAAS,CAAC,SAAS;AACjB,cAAM,SACJ,OAAO,SAAS,aAAc,KAAqB,IAAI,IAAK,EAAE,GAAG,MAAM,GAAG,KAAA;AAC5E,cAAM,OAAO,MAAM,MAAM;AACzB,YAAI,OAAO,WAAW,aAAa;AACjC,gBAAM,UAAU,OAAO,SAAS,WAAW,OAAO,SAAS;AAC3D,cAAI,YAAY,KAAM,QAAO,QAAQ,UAAU,MAAM,IAAI,IAAI;AAAA,QAC/D;AACA,eAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,IACA,CAAC,KAAK;AAAA,EAAA;AAGR,SAAO,CAAC,OAAO,QAAQ;AACzB;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type SortDir = "asc" | "desc";
|
|
2
|
+
export type SortState = {
|
|
3
|
+
key: string;
|
|
4
|
+
dir: SortDir;
|
|
5
|
+
};
|
|
6
|
+
export type UseSortOptions<T> = {
|
|
7
|
+
defaultKey?: string;
|
|
8
|
+
defaultDir?: SortDir;
|
|
9
|
+
resolvers?: Record<string, (item: T) => unknown>;
|
|
10
|
+
};
|
|
11
|
+
export type UseSortReturn<T> = {
|
|
12
|
+
sorted: T[];
|
|
13
|
+
sort: SortState | null;
|
|
14
|
+
toggle: (key: string) => void;
|
|
15
|
+
};
|
|
16
|
+
export declare function useSort<T>(items: T[], options?: UseSortOptions<T>): UseSortReturn<T>;
|
|
17
|
+
//# sourceMappingURL=use-sort.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-sort.d.ts","sourceRoot":"","sources":["../../src/hooks/use-sort.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAErC,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,OAAO,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC7B,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B,CAAC;AASF,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,OAAO,GAAE,cAAc,CAAC,CAAC,CAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAqCxF"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { useState, useMemo } from "react";
|
|
2
|
+
function resolvePath(obj, path) {
|
|
3
|
+
return path.split(".").reduce((o, k) => {
|
|
4
|
+
if (o && typeof o === "object") return o[k];
|
|
5
|
+
return void 0;
|
|
6
|
+
}, obj);
|
|
7
|
+
}
|
|
8
|
+
function useSort(items, options = {}) {
|
|
9
|
+
const { defaultKey, defaultDir = "asc", resolvers } = options;
|
|
10
|
+
const [sort, setSort] = useState(
|
|
11
|
+
defaultKey ? { key: defaultKey, dir: defaultDir } : null
|
|
12
|
+
);
|
|
13
|
+
function toggle(key) {
|
|
14
|
+
setSort((prev) => {
|
|
15
|
+
if ((prev == null ? void 0 : prev.key) === key) {
|
|
16
|
+
return prev.dir === "asc" ? { key, dir: "desc" } : null;
|
|
17
|
+
}
|
|
18
|
+
return { key, dir: "asc" };
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
const sorted = useMemo(() => {
|
|
22
|
+
if (!items) return [];
|
|
23
|
+
if (!sort) return items;
|
|
24
|
+
const { key, dir } = sort;
|
|
25
|
+
const resolver = resolvers == null ? void 0 : resolvers[key];
|
|
26
|
+
const get = (item) => resolver ? resolver(item) : resolvePath(item, key);
|
|
27
|
+
return [...items].sort((a, b) => {
|
|
28
|
+
const av = get(a);
|
|
29
|
+
const bv = get(b);
|
|
30
|
+
if (av == null && bv == null) return 0;
|
|
31
|
+
if (av == null) return 1;
|
|
32
|
+
if (bv == null) return -1;
|
|
33
|
+
const cmp = typeof av === "number" && typeof bv === "number" ? av - bv : String(av).localeCompare(String(bv));
|
|
34
|
+
return dir === "asc" ? cmp : -cmp;
|
|
35
|
+
});
|
|
36
|
+
}, [items, sort, resolvers]);
|
|
37
|
+
return { sorted, sort, toggle };
|
|
38
|
+
}
|
|
39
|
+
export {
|
|
40
|
+
useSort
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=use-sort.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-sort.js","sources":["../../src/hooks/use-sort.ts"],"sourcesContent":["import { useMemo, useState } from \"react\";\n\nexport type SortDir = \"asc\" | \"desc\";\n\nexport type SortState = {\n key: string;\n dir: SortDir;\n};\n\nexport type UseSortOptions<T> = {\n defaultKey?: string;\n defaultDir?: SortDir;\n resolvers?: Record<string, (item: T) => unknown>;\n};\n\nexport type UseSortReturn<T> = {\n sorted: T[];\n sort: SortState | null;\n toggle: (key: string) => void;\n};\n\nfunction resolvePath(obj: unknown, path: string): unknown {\n return path.split(\".\").reduce<unknown>((o, k) => {\n if (o && typeof o === \"object\") return (o as Record<string, unknown>)[k];\n return undefined;\n }, obj);\n}\n\nexport function useSort<T>(items: T[], options: UseSortOptions<T> = {}): UseSortReturn<T> {\n const { defaultKey, defaultDir = \"asc\", resolvers } = options;\n\n const [sort, setSort] = useState<SortState | null>(\n defaultKey ? { key: defaultKey, dir: defaultDir } : null,\n );\n\n function toggle(key: string) {\n setSort((prev) => {\n if (prev?.key === key) {\n return prev.dir === \"asc\" ? { key, dir: \"desc\" } : null;\n }\n return { key, dir: \"asc\" };\n });\n }\n\n const sorted = useMemo(() => {\n if (!items) return [];\n if (!sort) return items;\n const { key, dir } = sort;\n const resolver = resolvers?.[key];\n const get = (item: T) => (resolver ? resolver(item) : resolvePath(item, key));\n return [...items].sort((a, b) => {\n const av = get(a);\n const bv = get(b);\n if (av == null && bv == null) return 0;\n if (av == null) return 1;\n if (bv == null) return -1;\n const cmp =\n typeof av === \"number\" && typeof bv === \"number\"\n ? av - bv\n : String(av).localeCompare(String(bv));\n return dir === \"asc\" ? cmp : -cmp;\n });\n }, [items, sort, resolvers]);\n\n return { sorted, sort, toggle };\n}\n"],"names":[],"mappings":";AAqBA,SAAS,YAAY,KAAc,MAAuB;AACxD,SAAO,KAAK,MAAM,GAAG,EAAE,OAAgB,CAAC,GAAG,MAAM;AAC/C,QAAI,KAAK,OAAO,MAAM,SAAU,QAAQ,EAA8B,CAAC;AACvE,WAAO;AAAA,EACT,GAAG,GAAG;AACR;AAEO,SAAS,QAAW,OAAY,UAA6B,IAAsB;AACxF,QAAM,EAAE,YAAY,aAAa,OAAO,cAAc;AAEtD,QAAM,CAAC,MAAM,OAAO,IAAI;AAAA,IACtB,aAAa,EAAE,KAAK,YAAY,KAAK,eAAe;AAAA,EAAA;AAGtD,WAAS,OAAO,KAAa;AAC3B,YAAQ,CAAC,SAAS;AAChB,WAAI,6BAAM,SAAQ,KAAK;AACrB,eAAO,KAAK,QAAQ,QAAQ,EAAE,KAAK,KAAK,WAAW;AAAA,MACrD;AACA,aAAO,EAAE,KAAK,KAAK,MAAA;AAAA,IACrB,CAAC;AAAA,EACH;AAEA,QAAM,SAAS,QAAQ,MAAM;AAC3B,QAAI,CAAC,MAAO,QAAO,CAAA;AACnB,QAAI,CAAC,KAAM,QAAO;AAClB,UAAM,EAAE,KAAK,IAAA,IAAQ;AACrB,UAAM,WAAW,uCAAY;AAC7B,UAAM,MAAM,CAAC,SAAa,WAAW,SAAS,IAAI,IAAI,YAAY,MAAM,GAAG;AAC3E,WAAO,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM;AAC/B,YAAM,KAAK,IAAI,CAAC;AAChB,YAAM,KAAK,IAAI,CAAC;AAChB,UAAI,MAAM,QAAQ,MAAM,KAAM,QAAO;AACrC,UAAI,MAAM,KAAM,QAAO;AACvB,UAAI,MAAM,KAAM,QAAO;AACvB,YAAM,MACJ,OAAO,OAAO,YAAY,OAAO,OAAO,WACpC,KAAK,KACL,OAAO,EAAE,EAAE,cAAc,OAAO,EAAE,CAAC;AACzC,aAAO,QAAQ,QAAQ,MAAM,CAAC;AAAA,IAChC,CAAC;AAAA,EACH,GAAG,CAAC,OAAO,MAAM,SAAS,CAAC;AAE3B,SAAO,EAAE,QAAQ,MAAM,OAAA;AACzB;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export type Theme = "light" | "dark" | "system";
|
|
3
|
+
export type ResolvedTheme = "light" | "dark";
|
|
4
|
+
type ThemeContextValue = {
|
|
5
|
+
theme: Theme;
|
|
6
|
+
resolvedTheme: ResolvedTheme;
|
|
7
|
+
setTheme: (next: Theme) => void;
|
|
8
|
+
};
|
|
9
|
+
export type ThemeProviderProps = {
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
defaultTheme?: Theme;
|
|
12
|
+
storageKey?: string;
|
|
13
|
+
};
|
|
14
|
+
export declare function ThemeProvider({ children, defaultTheme, storageKey, }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export declare function useTheme(): ThemeContextValue;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=use-theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-theme.d.ts","sourceRoot":"","sources":["../../src/hooks/use-theme.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAChD,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC;AAE7C,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC,CAAC;AA4BF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,YAAuB,EACvB,UAAwB,GACzB,EAAE,kBAAkB,2CAoCpB;AAED,wBAAgB,QAAQ,IAAI,iBAAiB,CAI5C"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useContext, createContext, useState, useEffect, useCallback, useMemo } from "react";
|
|
3
|
+
const STORAGE_KEY = "clicky-ui-theme";
|
|
4
|
+
const DATA_ATTR = "data-theme";
|
|
5
|
+
const ThemeContext = createContext(null);
|
|
6
|
+
function prefersDark() {
|
|
7
|
+
if (typeof window === "undefined") return false;
|
|
8
|
+
return window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
9
|
+
}
|
|
10
|
+
function readStored() {
|
|
11
|
+
if (typeof window === "undefined") return "system";
|
|
12
|
+
const raw = window.localStorage.getItem(STORAGE_KEY);
|
|
13
|
+
return raw === "light" || raw === "dark" || raw === "system" ? raw : "system";
|
|
14
|
+
}
|
|
15
|
+
function resolve(theme) {
|
|
16
|
+
if (theme === "system") return prefersDark() ? "dark" : "light";
|
|
17
|
+
return theme;
|
|
18
|
+
}
|
|
19
|
+
function apply(resolved) {
|
|
20
|
+
if (typeof document === "undefined") return;
|
|
21
|
+
document.documentElement.setAttribute(DATA_ATTR, resolved);
|
|
22
|
+
}
|
|
23
|
+
function ThemeProvider({
|
|
24
|
+
children,
|
|
25
|
+
defaultTheme = "system",
|
|
26
|
+
storageKey = STORAGE_KEY
|
|
27
|
+
}) {
|
|
28
|
+
const [theme, setThemeState] = useState(() => {
|
|
29
|
+
if (typeof window === "undefined") return defaultTheme;
|
|
30
|
+
return readStored() ?? defaultTheme;
|
|
31
|
+
});
|
|
32
|
+
const [resolvedTheme, setResolvedTheme] = useState(() => resolve(theme));
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
const next = resolve(theme);
|
|
35
|
+
setResolvedTheme(next);
|
|
36
|
+
apply(next);
|
|
37
|
+
if (typeof window !== "undefined") {
|
|
38
|
+
window.localStorage.setItem(storageKey, theme);
|
|
39
|
+
}
|
|
40
|
+
}, [theme, storageKey]);
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
if (theme !== "system" || typeof window === "undefined") return;
|
|
43
|
+
const mq = window.matchMedia("(prefers-color-scheme: dark)");
|
|
44
|
+
const onChange = () => {
|
|
45
|
+
const next = mq.matches ? "dark" : "light";
|
|
46
|
+
setResolvedTheme(next);
|
|
47
|
+
apply(next);
|
|
48
|
+
};
|
|
49
|
+
mq.addEventListener("change", onChange);
|
|
50
|
+
return () => mq.removeEventListener("change", onChange);
|
|
51
|
+
}, [theme]);
|
|
52
|
+
const setTheme = useCallback((next) => setThemeState(next), []);
|
|
53
|
+
const value = useMemo(
|
|
54
|
+
() => ({ theme, resolvedTheme, setTheme }),
|
|
55
|
+
[theme, resolvedTheme, setTheme]
|
|
56
|
+
);
|
|
57
|
+
return /* @__PURE__ */ jsx(ThemeContext.Provider, { value, children });
|
|
58
|
+
}
|
|
59
|
+
function useTheme() {
|
|
60
|
+
const ctx = useContext(ThemeContext);
|
|
61
|
+
if (!ctx) throw new Error("useTheme must be used inside <ThemeProvider>");
|
|
62
|
+
return ctx;
|
|
63
|
+
}
|
|
64
|
+
export {
|
|
65
|
+
ThemeProvider,
|
|
66
|
+
useTheme
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=use-theme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-theme.js","sources":["../../src/hooks/use-theme.tsx"],"sourcesContent":["import {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n type ReactNode,\n} from \"react\";\n\nexport type Theme = \"light\" | \"dark\" | \"system\";\nexport type ResolvedTheme = \"light\" | \"dark\";\n\ntype ThemeContextValue = {\n theme: Theme;\n resolvedTheme: ResolvedTheme;\n setTheme: (next: Theme) => void;\n};\n\nconst STORAGE_KEY = \"clicky-ui-theme\";\nconst DATA_ATTR = \"data-theme\";\n\nconst ThemeContext = createContext<ThemeContextValue | null>(null);\n\nfunction prefersDark(): boolean {\n if (typeof window === \"undefined\") return false;\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n}\n\nfunction readStored(): Theme {\n if (typeof window === \"undefined\") return \"system\";\n const raw = window.localStorage.getItem(STORAGE_KEY);\n return raw === \"light\" || raw === \"dark\" || raw === \"system\" ? raw : \"system\";\n}\n\nfunction resolve(theme: Theme): ResolvedTheme {\n if (theme === \"system\") return prefersDark() ? \"dark\" : \"light\";\n return theme;\n}\n\nfunction apply(resolved: ResolvedTheme): void {\n if (typeof document === \"undefined\") return;\n document.documentElement.setAttribute(DATA_ATTR, resolved);\n}\n\nexport type ThemeProviderProps = {\n children: ReactNode;\n defaultTheme?: Theme;\n storageKey?: string;\n};\n\nexport function ThemeProvider({\n children,\n defaultTheme = \"system\",\n storageKey = STORAGE_KEY,\n}: ThemeProviderProps) {\n const [theme, setThemeState] = useState<Theme>(() => {\n if (typeof window === \"undefined\") return defaultTheme;\n return readStored() ?? defaultTheme;\n });\n const [resolvedTheme, setResolvedTheme] = useState<ResolvedTheme>(() => resolve(theme));\n\n useEffect(() => {\n const next = resolve(theme);\n setResolvedTheme(next);\n apply(next);\n if (typeof window !== \"undefined\") {\n window.localStorage.setItem(storageKey, theme);\n }\n }, [theme, storageKey]);\n\n useEffect(() => {\n if (theme !== \"system\" || typeof window === \"undefined\") return;\n const mq = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const onChange = () => {\n const next: ResolvedTheme = mq.matches ? \"dark\" : \"light\";\n setResolvedTheme(next);\n apply(next);\n };\n mq.addEventListener(\"change\", onChange);\n return () => mq.removeEventListener(\"change\", onChange);\n }, [theme]);\n\n const setTheme = useCallback((next: Theme) => setThemeState(next), []);\n\n const value = useMemo<ThemeContextValue>(\n () => ({ theme, resolvedTheme, setTheme }),\n [theme, resolvedTheme, setTheme],\n );\n\n return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;\n}\n\nexport function useTheme(): ThemeContextValue {\n const ctx = useContext(ThemeContext);\n if (!ctx) throw new Error(\"useTheme must be used inside <ThemeProvider>\");\n return ctx;\n}\n"],"names":[],"mappings":";;AAmBA,MAAM,cAAc;AACpB,MAAM,YAAY;AAElB,MAAM,eAAe,cAAwC,IAAI;AAEjE,SAAS,cAAuB;AAC9B,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,SAAO,OAAO,WAAW,8BAA8B,EAAE;AAC3D;AAEA,SAAS,aAAoB;AAC3B,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,QAAM,MAAM,OAAO,aAAa,QAAQ,WAAW;AACnD,SAAO,QAAQ,WAAW,QAAQ,UAAU,QAAQ,WAAW,MAAM;AACvE;AAEA,SAAS,QAAQ,OAA6B;AAC5C,MAAI,UAAU,SAAU,QAAO,YAAA,IAAgB,SAAS;AACxD,SAAO;AACT;AAEA,SAAS,MAAM,UAA+B;AAC5C,MAAI,OAAO,aAAa,YAAa;AACrC,WAAS,gBAAgB,aAAa,WAAW,QAAQ;AAC3D;AAQO,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA,eAAe;AAAA,EACf,aAAa;AACf,GAAuB;AACrB,QAAM,CAAC,OAAO,aAAa,IAAI,SAAgB,MAAM;AACnD,QAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,WAAO,gBAAgB;AAAA,EACzB,CAAC;AACD,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAwB,MAAM,QAAQ,KAAK,CAAC;AAEtF,YAAU,MAAM;AACd,UAAM,OAAO,QAAQ,KAAK;AAC1B,qBAAiB,IAAI;AACrB,UAAM,IAAI;AACV,QAAI,OAAO,WAAW,aAAa;AACjC,aAAO,aAAa,QAAQ,YAAY,KAAK;AAAA,IAC/C;AAAA,EACF,GAAG,CAAC,OAAO,UAAU,CAAC;AAEtB,YAAU,MAAM;AACd,QAAI,UAAU,YAAY,OAAO,WAAW,YAAa;AACzD,UAAM,KAAK,OAAO,WAAW,8BAA8B;AAC3D,UAAM,WAAW,MAAM;AACrB,YAAM,OAAsB,GAAG,UAAU,SAAS;AAClD,uBAAiB,IAAI;AACrB,YAAM,IAAI;AAAA,IACZ;AACA,OAAG,iBAAiB,UAAU,QAAQ;AACtC,WAAO,MAAM,GAAG,oBAAoB,UAAU,QAAQ;AAAA,EACxD,GAAG,CAAC,KAAK,CAAC;AAEV,QAAM,WAAW,YAAY,CAAC,SAAgB,cAAc,IAAI,GAAG,EAAE;AAErE,QAAM,QAAQ;AAAA,IACZ,OAAO,EAAE,OAAO,eAAe;IAC/B,CAAC,OAAO,eAAe,QAAQ;AAAA,EAAA;AAGjC,SAAO,oBAAC,aAAa,UAAb,EAAsB,OAAe,SAAA,CAAS;AACxD;AAEO,SAAS,WAA8B;AAC5C,QAAM,MAAM,WAAW,YAAY;AACnC,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,8CAA8C;AACxE,SAAO;AACT;"}
|
package/dist/hooks.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { ThemeProvider, useTheme, type Theme, type ResolvedTheme } from './hooks/use-theme';
|
|
2
|
+
export { DensityProvider, useDensity, useDensityValue, type Density } from './hooks/use-density';
|
|
3
|
+
export { useSort, type SortDir, type SortState, type UseSortOptions, type UseSortReturn, } from './hooks/use-sort';
|
|
4
|
+
export { useHistoryRoute, type UseHistoryRouteOptions } from './hooks/use-history-route';
|
|
5
|
+
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,KAAK,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EACL,OAAO,EACP,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/hooks.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ThemeProvider, useTheme } from "./hooks/use-theme.js";
|
|
2
|
+
import { DensityProvider, useDensity, useDensityValue } from "./hooks/use-density.js";
|
|
3
|
+
import { useSort } from "./hooks/use-sort.js";
|
|
4
|
+
import { useHistoryRoute } from "./hooks/use-history-route.js";
|
|
5
|
+
export {
|
|
6
|
+
DensityProvider,
|
|
7
|
+
ThemeProvider,
|
|
8
|
+
useDensity,
|
|
9
|
+
useDensityValue,
|
|
10
|
+
useHistoryRoute,
|
|
11
|
+
useSort,
|
|
12
|
+
useTheme
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC"}
|