@flanksource/clicky-ui 0.3.33 → 0.3.35
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 +4 -0
- package/dist/ai.cjs +3 -0
- package/dist/ai.cjs.map +1 -1
- package/dist/ai.js +3 -0
- package/dist/ai.js.map +1 -1
- package/dist/comments/CommentCard.cjs +9 -8
- package/dist/comments/CommentCard.cjs.map +1 -1
- package/dist/comments/CommentCard.d.ts +1 -1
- package/dist/comments/CommentCard.d.ts.map +1 -1
- package/dist/comments/CommentCard.js +2 -1
- package/dist/comments/CommentCard.js.map +1 -1
- package/dist/comments/CommentCardParts.cjs +2 -1
- package/dist/comments/CommentCardParts.cjs.map +1 -1
- package/dist/comments/CommentCardParts.d.ts.map +1 -1
- package/dist/comments/CommentCardParts.js +2 -1
- package/dist/comments/CommentCardParts.js.map +1 -1
- package/dist/comments/CommentProvider.d.ts +1 -1
- package/dist/comments/CommentSidePanel.cjs +3 -2
- package/dist/comments/CommentSidePanel.cjs.map +1 -1
- package/dist/comments/CommentSidePanel.d.ts.map +1 -1
- package/dist/comments/CommentSidePanel.js +2 -1
- package/dist/comments/CommentSidePanel.js.map +1 -1
- package/dist/comments/CommentThread.d.ts +1 -1
- package/dist/comments/CommentThreadList.d.ts +1 -1
- package/dist/comments/MentionTextarea.d.ts +1 -1
- package/dist/comments/comment-context.d.ts +4 -4
- package/dist/comments/comment-fixtures.d.ts +1 -1
- package/dist/comments/comment-types.d.ts +1 -1
- package/dist/comments/comment-utils.cjs +0 -27
- package/dist/comments/comment-utils.cjs.map +1 -1
- package/dist/comments/comment-utils.d.ts +1 -7
- package/dist/comments/comment-utils.d.ts.map +1 -1
- package/dist/comments/comment-utils.js +0 -27
- package/dist/comments/comment-utils.js.map +1 -1
- package/dist/comments.cjs +4 -3
- package/dist/comments.cjs.map +1 -1
- package/dist/comments.d.ts +1 -0
- package/dist/comments.d.ts.map +1 -1
- package/dist/comments.js +2 -1
- package/dist/comments.js.map +1 -1
- package/dist/components/AccordionList.d.ts +1 -1
- package/dist/components/ComboboxControl.d.ts +1 -1
- package/dist/components/ComboboxMenu.d.ts +2 -2
- package/dist/components/ComboboxTags.cjs +41 -11
- package/dist/components/ComboboxTags.cjs.map +1 -1
- package/dist/components/ComboboxTags.d.ts +6 -0
- package/dist/components/ComboboxTags.d.ts.map +1 -1
- package/dist/components/ComboboxTags.js +41 -11
- package/dist/components/ComboboxTags.js.map +1 -1
- package/dist/components/DateField.d.ts +3 -3
- package/dist/components/DatePicker.d.ts +3 -3
- package/dist/components/DateTimePicker.d.ts +3 -3
- package/dist/components/ErrorWrapper.d.ts +2 -2
- package/dist/components/Field.d.ts +1 -1
- package/dist/components/FilterBar.d.ts +1 -1
- package/dist/components/FormLookupProvider.d.ts +1 -1
- package/dist/components/FormatOptionsDropdown.d.ts +1 -1
- package/dist/components/IconButton.d.ts +3 -3
- package/dist/components/InputField.d.ts +2 -2
- package/dist/components/ItemActions.d.ts +1 -1
- package/dist/components/JsonSchemaForm.cjs +17 -36
- package/dist/components/JsonSchemaForm.cjs.map +1 -1
- package/dist/components/JsonSchemaForm.d.ts +1 -1
- package/dist/components/JsonSchemaForm.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm.js +17 -36
- package/dist/components/JsonSchemaForm.js.map +1 -1
- package/dist/components/ListMenu.d.ts +1 -1
- package/dist/components/MultiSelect.d.ts +1 -1
- package/dist/components/RangeSlider.cjs +15 -1
- package/dist/components/RangeSlider.cjs.map +1 -1
- package/dist/components/RangeSlider.d.ts.map +1 -1
- package/dist/components/RangeSlider.js +15 -1
- package/dist/components/RangeSlider.js.map +1 -1
- package/dist/components/SearchInput.d.ts +1 -1
- package/dist/components/SegmentedControl.d.ts +1 -1
- package/dist/components/SplitButton.d.ts +1 -1
- package/dist/components/Switch.d.ts +1 -1
- package/dist/components/TreePickerField.cjs +11 -2
- package/dist/components/TreePickerField.cjs.map +1 -1
- package/dist/components/TreePickerField.d.ts +13 -4
- package/dist/components/TreePickerField.d.ts.map +1 -1
- package/dist/components/TreePickerField.js +11 -2
- package/dist/components/TreePickerField.js.map +1 -1
- package/dist/components/UnitStepControls.d.ts +1 -1
- package/dist/components/button.d.ts +3 -3
- package/dist/components/combobox-types.d.ts +1 -1
- package/dist/components/density-switcher.d.ts +1 -1
- package/dist/components/filter-bar-context.d.ts +1 -1
- package/dist/components/filter-bar-field-utils.d.ts +2 -2
- package/dist/components/form-lookup-context.d.ts +1 -1
- package/dist/components/icon-menu-picker.d.ts +1 -1
- package/dist/components/json-schema-form-accordion-array.cjs +44 -21
- package/dist/components/json-schema-form-accordion-array.cjs.map +1 -1
- package/dist/components/json-schema-form-accordion-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-accordion-array.js +47 -24
- package/dist/components/json-schema-form-accordion-array.js.map +1 -1
- package/dist/components/json-schema-form-array.cjs +53 -30
- package/dist/components/json-schema-form-array.cjs.map +1 -1
- package/dist/components/json-schema-form-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-array.js +54 -31
- package/dist/components/json-schema-form-array.js.map +1 -1
- package/dist/components/json-schema-form-cards-array.cjs +32 -22
- package/dist/components/json-schema-form-cards-array.cjs.map +1 -1
- package/dist/components/json-schema-form-cards-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-cards-array.js +33 -23
- package/dist/components/json-schema-form-cards-array.js.map +1 -1
- package/dist/components/json-schema-form-collection-layouts.fixtures.d.ts +44 -0
- package/dist/components/json-schema-form-collection-layouts.fixtures.d.ts.map +1 -0
- package/dist/components/json-schema-form-discriminator.d.ts +1 -1
- package/dist/components/json-schema-form-errors.cjs +5 -1
- package/dist/components/json-schema-form-errors.cjs.map +1 -1
- package/dist/components/json-schema-form-errors.d.ts +2 -1
- package/dist/components/json-schema-form-errors.d.ts.map +1 -1
- package/dist/components/json-schema-form-errors.js +6 -2
- package/dist/components/json-schema-form-errors.js.map +1 -1
- package/dist/components/json-schema-form-extensions.d.ts +1 -1
- package/dist/components/json-schema-form-filter-input.cjs +50 -0
- package/dist/components/json-schema-form-filter-input.cjs.map +1 -0
- package/dist/components/json-schema-form-filter-input.d.ts +5 -0
- package/dist/components/json-schema-form-filter-input.d.ts.map +1 -0
- package/dist/components/json-schema-form-filter-input.js +50 -0
- package/dist/components/json-schema-form-filter-input.js.map +1 -0
- package/dist/components/json-schema-form-filter.cjs +49 -0
- package/dist/components/json-schema-form-filter.cjs.map +1 -0
- package/dist/components/json-schema-form-filter.d.ts +8 -0
- package/dist/components/json-schema-form-filter.d.ts.map +1 -0
- package/dist/components/json-schema-form-filter.js +49 -0
- package/dist/components/json-schema-form-filter.js.map +1 -0
- package/dist/components/json-schema-form-layout.cjs +84 -17
- package/dist/components/json-schema-form-layout.cjs.map +1 -1
- package/dist/components/json-schema-form-layout.d.ts +1 -1
- package/dist/components/json-schema-form-layout.d.ts.map +1 -1
- package/dist/components/json-schema-form-layout.js +84 -17
- package/dist/components/json-schema-form-layout.js.map +1 -1
- package/dist/components/json-schema-form-list-array.cjs +16 -5
- package/dist/components/json-schema-form-list-array.cjs.map +1 -1
- package/dist/components/json-schema-form-list-array.d.ts +2 -1
- package/dist/components/json-schema-form-list-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-list-array.js +16 -5
- package/dist/components/json-schema-form-list-array.js.map +1 -1
- package/dist/components/json-schema-form-object.cjs +239 -85
- package/dist/components/json-schema-form-object.cjs.map +1 -1
- package/dist/components/json-schema-form-object.d.ts +2 -2
- package/dist/components/json-schema-form-object.d.ts.map +1 -1
- package/dist/components/json-schema-form-object.js +241 -87
- package/dist/components/json-schema-form-object.js.map +1 -1
- package/dist/components/json-schema-form-preferences.cjs +1 -1
- package/dist/components/json-schema-form-preferences.cjs.map +1 -1
- package/dist/components/json-schema-form-preferences.d.ts +1 -1
- package/dist/components/json-schema-form-preferences.d.ts.map +1 -1
- package/dist/components/json-schema-form-preferences.js +1 -1
- package/dist/components/json-schema-form-preferences.js.map +1 -1
- package/dist/components/json-schema-form-properties-errors.fixtures.d.ts +14 -0
- package/dist/components/json-schema-form-properties-errors.fixtures.d.ts.map +1 -0
- package/dist/components/json-schema-form-properties-size.cjs +19 -0
- package/dist/components/json-schema-form-properties-size.cjs.map +1 -0
- package/dist/components/json-schema-form-properties-size.d.ts +4 -0
- package/dist/components/json-schema-form-properties-size.d.ts.map +1 -0
- package/dist/components/json-schema-form-properties-size.js +19 -0
- package/dist/components/json-schema-form-properties-size.js.map +1 -0
- package/dist/components/json-schema-form-properties.cjs +305 -0
- package/dist/components/json-schema-form-properties.cjs.map +1 -0
- package/dist/components/json-schema-form-properties.d.ts +20 -0
- package/dist/components/json-schema-form-properties.d.ts.map +1 -0
- package/dist/components/json-schema-form-properties.fixtures.d.ts +157 -0
- package/dist/components/json-schema-form-properties.fixtures.d.ts.map +1 -0
- package/dist/components/json-schema-form-properties.js +305 -0
- package/dist/components/json-schema-form-properties.js.map +1 -0
- package/dist/components/json-schema-form-property-actions-context.cjs +6 -0
- package/dist/components/json-schema-form-property-actions-context.cjs.map +1 -0
- package/dist/components/json-schema-form-property-actions-context.d.ts +2 -0
- package/dist/components/json-schema-form-property-actions-context.d.ts.map +1 -0
- package/dist/components/json-schema-form-property-actions-context.js +6 -0
- package/dist/components/json-schema-form-property-actions-context.js.map +1 -0
- package/dist/components/json-schema-form-property-collection.cjs +31 -0
- package/dist/components/json-schema-form-property-collection.cjs.map +1 -0
- package/dist/components/json-schema-form-property-collection.d.ts +6 -0
- package/dist/components/json-schema-form-property-collection.d.ts.map +1 -0
- package/dist/components/json-schema-form-property-collection.js +31 -0
- package/dist/components/json-schema-form-property-collection.js.map +1 -0
- package/dist/components/json-schema-form-property-draft.cjs +45 -0
- package/dist/components/json-schema-form-property-draft.cjs.map +1 -0
- package/dist/components/json-schema-form-property-draft.d.ts +8 -0
- package/dist/components/json-schema-form-property-draft.d.ts.map +1 -0
- package/dist/components/json-schema-form-property-draft.js +45 -0
- package/dist/components/json-schema-form-property-draft.js.map +1 -0
- package/dist/components/json-schema-form-property-preview.cjs +68 -0
- package/dist/components/json-schema-form-property-preview.cjs.map +1 -0
- package/dist/components/json-schema-form-property-preview.d.ts +7 -0
- package/dist/components/json-schema-form-property-preview.d.ts.map +1 -0
- package/dist/components/json-schema-form-property-preview.js +68 -0
- package/dist/components/json-schema-form-property-preview.js.map +1 -0
- package/dist/components/json-schema-form-property-selection.cjs +89 -0
- package/dist/components/json-schema-form-property-selection.cjs.map +1 -0
- package/dist/components/json-schema-form-property-selection.d.ts +6 -0
- package/dist/components/json-schema-form-property-selection.d.ts.map +1 -0
- package/dist/components/json-schema-form-property-selection.js +89 -0
- package/dist/components/json-schema-form-property-selection.js.map +1 -0
- package/dist/components/json-schema-form-render.cjs +41 -4
- package/dist/components/json-schema-form-render.cjs.map +1 -1
- package/dist/components/json-schema-form-render.d.ts +1 -1
- package/dist/components/json-schema-form-render.d.ts.map +1 -1
- package/dist/components/json-schema-form-render.js +42 -5
- package/dist/components/json-schema-form-render.js.map +1 -1
- package/dist/components/json-schema-form-resolve.cjs +2 -0
- package/dist/components/json-schema-form-resolve.cjs.map +1 -1
- package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
- package/dist/components/json-schema-form-resolve.js +2 -0
- package/dist/components/json-schema-form-resolve.js.map +1 -1
- package/dist/components/json-schema-form-runtime-types.d.ts +222 -0
- package/dist/components/json-schema-form-runtime-types.d.ts.map +1 -0
- package/dist/components/json-schema-form-table-array.cjs +82 -51
- package/dist/components/json-schema-form-table-array.cjs.map +1 -1
- package/dist/components/json-schema-form-table-array.d.ts.map +1 -1
- package/dist/components/json-schema-form-table-array.js +84 -53
- package/dist/components/json-schema-form-table-array.js.map +1 -1
- package/dist/components/json-schema-form-template-menu.d.ts +1 -1
- package/dist/components/json-schema-form-template.d.ts +1 -1
- package/dist/components/json-schema-form-types.d.ts +7 -179
- package/dist/components/json-schema-form-types.d.ts.map +1 -1
- package/dist/components/json-schema-form-utils.cjs +10 -9
- package/dist/components/json-schema-form-utils.cjs.map +1 -1
- package/dist/components/json-schema-form-utils.d.ts +11 -1
- package/dist/components/json-schema-form-utils.d.ts.map +1 -1
- package/dist/components/json-schema-form-utils.js +10 -9
- package/dist/components/json-schema-form-utils.js.map +1 -1
- package/dist/components/loading.d.ts +4 -4
- package/dist/components/mdx-editor-callout.d.ts +1 -1
- package/dist/components/mdx-editor-options.d.ts +1 -1
- package/dist/components/select.d.ts +3 -3
- package/dist/components/theme-switcher.d.ts +1 -1
- package/dist/components/use-list-menu-selection.d.ts +1 -1
- package/dist/components/useComboboxLayout.d.ts +1 -1
- package/dist/components/workload-picker-utils.d.ts +1 -1
- package/dist/data/Avatar.d.ts +1 -1
- package/dist/data/AvatarBadge.d.ts +1 -1
- package/dist/data/Badge.d.ts +1 -1
- package/dist/data/Callout.d.ts +1 -1
- package/dist/data/DataTable.cjs +575 -435
- package/dist/data/DataTable.cjs.map +1 -1
- package/dist/data/DataTable.d.ts +21 -13
- package/dist/data/DataTable.d.ts.map +1 -1
- package/dist/data/DataTable.grouping.d.ts +1 -1
- package/dist/data/DataTable.js +575 -435
- package/dist/data/DataTable.js.map +1 -1
- package/dist/data/ExecutionTree.d.ts +1 -1
- package/dist/data/FilterPill.d.ts +1 -1
- package/dist/data/FixtureEditor/RawFenceEditor.d.ts +1 -1
- package/dist/data/FixtureEditor/types.d.ts +1 -1
- package/dist/data/Gauge.d.ts +1 -1
- package/dist/data/GaugeHoverCard.d.ts +1 -1
- package/dist/data/Icon.d.ts +1 -1
- package/dist/data/KeyValueList.d.ts +1 -1
- package/dist/data/MarkdownEditor.d.ts +1 -1
- package/dist/data/MatrixTable.d.ts +1 -1
- package/dist/data/ObjectGraph.d.ts +1 -1
- package/dist/data/ProgressBars.d.ts +1 -1
- package/dist/data/Properties.cjs +86 -35
- package/dist/data/Properties.cjs.map +1 -1
- package/dist/data/Properties.d.ts +2 -2
- package/dist/data/Properties.d.ts.map +1 -1
- package/dist/data/Properties.js +87 -36
- package/dist/data/Properties.js.map +1 -1
- package/dist/data/RadialGauge.d.ts +1 -1
- package/dist/data/SchemaViewer.d.ts +1 -1
- package/dist/data/SortableHeader.d.ts +1 -1
- package/dist/data/StatStrip.d.ts +1 -1
- package/dist/data/StatusBreakdown.d.ts +1 -1
- package/dist/data/TabButton.d.ts +1 -1
- package/dist/data/TaskManager.cjs +9 -17
- package/dist/data/TaskManager.cjs.map +1 -1
- package/dist/data/TaskManager.d.ts.map +1 -1
- package/dist/data/TaskManager.js +9 -17
- package/dist/data/TaskManager.js.map +1 -1
- package/dist/data/TaskManagerButton.cjs +17 -34
- package/dist/data/TaskManagerButton.cjs.map +1 -1
- package/dist/data/TaskManagerButton.d.ts.map +1 -1
- package/dist/data/TaskManagerButton.js +18 -35
- package/dist/data/TaskManagerButton.js.map +1 -1
- package/dist/data/TaskProcessDetails.cjs +5 -26
- package/dist/data/TaskProcessDetails.cjs.map +1 -1
- package/dist/data/TaskProcessDetails.d.ts +2 -1
- package/dist/data/TaskProcessDetails.d.ts.map +1 -1
- package/dist/data/TaskProcessDetails.js +5 -26
- package/dist/data/TaskProcessDetails.js.map +1 -1
- package/dist/data/TaskProgress.cjs +24 -15
- package/dist/data/TaskProgress.cjs.map +1 -1
- package/dist/data/TaskProgress.d.ts +2 -1
- package/dist/data/TaskProgress.d.ts.map +1 -1
- package/dist/data/TaskProgress.js +24 -15
- package/dist/data/TaskProgress.js.map +1 -1
- package/dist/data/TaskResourceReadings.cjs +42 -0
- package/dist/data/TaskResourceReadings.cjs.map +1 -0
- package/dist/data/TaskResourceReadings.d.ts +6 -0
- package/dist/data/TaskResourceReadings.d.ts.map +1 -0
- package/dist/data/TaskResourceReadings.js +42 -0
- package/dist/data/TaskResourceReadings.js.map +1 -0
- package/dist/data/TaskSnapshot.cjs.map +1 -1
- package/dist/data/TaskSnapshot.d.ts +14 -1
- package/dist/data/TaskSnapshot.d.ts.map +1 -1
- package/dist/data/TaskSnapshot.js.map +1 -1
- package/dist/data/Timeline.d.ts +1 -1
- package/dist/data/Tree.d.ts +1 -1
- package/dist/data/TreeGroupHeader.d.ts +1 -1
- package/dist/data/TreeNode.d.ts +1 -1
- package/dist/data/Version.d.ts +3 -3
- package/dist/data/ai/ChatWindow.cjs +22 -12
- package/dist/data/ai/ChatWindow.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.js +22 -12
- package/dist/data/ai/ChatWindow.js.map +1 -1
- package/dist/data/ai/ChatWindow.test-utils.d.ts +4 -2
- package/dist/data/ai/ChatWindow.test-utils.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.types.d.ts +1 -1
- package/dist/data/ai/ChatWindowManager.cjs +2 -0
- package/dist/data/ai/ChatWindowManager.cjs.map +1 -1
- package/dist/data/ai/ChatWindowManager.d.ts +1 -1
- package/dist/data/ai/ChatWindowManager.d.ts.map +1 -1
- package/dist/data/ai/ChatWindowManager.js +2 -0
- package/dist/data/ai/ChatWindowManager.js.map +1 -1
- package/dist/data/ai/PolicyTree.d.ts +1 -1
- package/dist/data/ai/PromptCatalog/PromptPageHeader.d.ts +1 -1
- package/dist/data/ai/PromptCatalog/types.d.ts +1 -1
- package/dist/data/ai/PromptRunEditor/index.cjs +4 -0
- package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -1
- package/dist/data/ai/PromptRunEditor/index.d.ts +5 -2
- package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
- package/dist/data/ai/PromptRunEditor/index.js +4 -0
- package/dist/data/ai/PromptRunEditor/index.js.map +1 -1
- package/dist/data/ai/SessionChatComposer.d.ts +1 -1
- package/dist/data/ai/SessionInspector.approvals.cjs +147 -0
- package/dist/data/ai/SessionInspector.approvals.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.approvals.d.ts +21 -0
- package/dist/data/ai/SessionInspector.approvals.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.approvals.js +147 -0
- package/dist/data/ai/SessionInspector.approvals.js.map +1 -0
- package/dist/data/ai/SessionInspector.cjs +21 -8
- package/dist/data/ai/SessionInspector.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.d.ts +6 -2
- package/dist/data/ai/SessionInspector.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.hierarchy.d.ts +1 -1
- package/dist/data/ai/SessionInspector.js +21 -8
- package/dist/data/ai/SessionInspector.js.map +1 -1
- package/dist/data/ai/SessionInspector.panel-parts.cjs +47 -0
- package/dist/data/ai/SessionInspector.panel-parts.cjs.map +1 -0
- package/dist/data/ai/SessionInspector.panel-parts.d.ts +20 -0
- package/dist/data/ai/SessionInspector.panel-parts.d.ts.map +1 -0
- package/dist/data/ai/SessionInspector.panel-parts.js +47 -0
- package/dist/data/ai/SessionInspector.panel-parts.js.map +1 -0
- package/dist/data/ai/SessionInspector.panels.cjs +40 -99
- package/dist/data/ai/SessionInspector.panels.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.panels.d.ts +3 -1
- package/dist/data/ai/SessionInspector.panels.d.ts.map +1 -1
- package/dist/data/ai/SessionInspector.panels.js +12 -71
- package/dist/data/ai/SessionInspector.panels.js.map +1 -1
- package/dist/data/ai/SessionViewer.d.ts +1 -1
- package/dist/data/ai/SessionViewer.rows.d.ts +1 -1
- package/dist/data/ai/SessionViewer.tool-details.d.ts +1 -1
- package/dist/data/ai/SessionViewer.unified.d.ts +23 -0
- package/dist/data/ai/SessionViewer.unified.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/Footer.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/Rail.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/SectionCard.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.cjs +3 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts +3 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.js +3 -1
- package/dist/data/ai/SpecRuntimeEditor/VerifySection.js.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/fields.d.ts +1 -1
- package/dist/data/ai/SpecRuntimeEditor/index.cjs +3 -1
- package/dist/data/ai/SpecRuntimeEditor/index.cjs.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/index.d.ts +5 -2
- package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -1
- package/dist/data/ai/SpecRuntimeEditor/index.js +3 -1
- package/dist/data/ai/SpecRuntimeEditor/index.js.map +1 -1
- package/dist/data/ai/chat-window-context.cjs +1 -0
- package/dist/data/ai/chat-window-context.cjs.map +1 -1
- package/dist/data/ai/chat-window-context.d.ts +13 -5
- package/dist/data/ai/chat-window-context.d.ts.map +1 -1
- package/dist/data/ai/chat-window-context.js +1 -0
- package/dist/data/ai/chat-window-context.js.map +1 -1
- package/dist/data/ai/index.d.ts +2 -1
- package/dist/data/ai/index.d.ts.map +1 -1
- package/dist/data/ai/use-session-scroll.d.ts +1 -1
- package/dist/data/badge-variants.d.ts +2 -2
- package/dist/data/cache-browser/adapter.d.ts +1 -1
- package/dist/data/cells/CellFilterActions.d.ts +1 -1
- package/dist/data/cells/EntityCell.d.ts +1 -1
- package/dist/data/cells/tag-utils.d.ts +1 -1
- package/dist/data/chat/Chat.cjs +42 -46
- package/dist/data/chat/Chat.cjs.map +1 -1
- package/dist/data/chat/Chat.d.ts +16 -5
- package/dist/data/chat/Chat.d.ts.map +1 -1
- package/dist/data/chat/Chat.js +43 -47
- package/dist/data/chat/Chat.js.map +1 -1
- package/dist/data/chat/ModelSelector.d.ts +1 -1
- package/dist/data/chat/PromptInput.cjs +13 -0
- package/dist/data/chat/PromptInput.cjs.map +1 -1
- package/dist/data/chat/PromptInput.d.ts +8 -2
- package/dist/data/chat/PromptInput.d.ts.map +1 -1
- package/dist/data/chat/PromptInput.js +14 -1
- package/dist/data/chat/PromptInput.js.map +1 -1
- package/dist/data/chat/tool-render/ToolArgs.d.ts +1 -1
- package/dist/data/chat/tool-render/ToolParams.d.ts +1 -1
- package/dist/data/chat/tool-render/ToolValue.d.ts +1 -1
- package/dist/data/chat/tool-render/adapter.d.ts +1 -1
- package/dist/data/chat/tool-render/context.d.ts +1 -1
- package/dist/data/chat/tool-render/defaults.d.ts +1 -1
- package/dist/data/chat/tool-render/known-tool-views.d.ts +1 -1
- package/dist/data/chat/tool-render/summary.d.ts +1 -1
- package/dist/data/chat/types.d.ts +1 -1
- package/dist/data/clicky-export/useClickyExport.d.ts +1 -1
- package/dist/data/data-table-server-filters.d.ts +1 -1
- package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts +1 -1
- package/dist/data/diagnostics/ErrorDetails.d.ts +1 -1
- package/dist/data/diagnostics/StackFrameRow.d.ts +1 -1
- package/dist/data/git/GitChangeList.d.ts +1 -1
- package/dist/data/icon-fallback.d.ts +1 -1
- package/dist/data/properties-context.cjs +6 -0
- package/dist/data/properties-context.cjs.map +1 -0
- package/dist/data/properties-context.d.ts +7 -0
- package/dist/data/properties-context.d.ts.map +1 -0
- package/dist/data/properties-context.js +6 -0
- package/dist/data/properties-context.js.map +1 -0
- package/dist/data/query-browser/QueryBrowser.types.d.ts +1 -1
- package/dist/data/runtime/RuntimeBar.cjs +7 -3
- package/dist/data/runtime/RuntimeBar.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBar.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBar.js +7 -3
- package/dist/data/runtime/RuntimeBar.js.map +1 -1
- package/dist/data/task-copy.cjs +1 -1
- package/dist/data/task-copy.cjs.map +1 -1
- package/dist/data/task-copy.js +1 -1
- package/dist/data/task-copy.js.map +1 -1
- package/dist/data/task-resource-summary.cjs +30 -0
- package/dist/data/task-resource-summary.cjs.map +1 -0
- package/dist/data/task-resource-summary.d.ts +15 -0
- package/dist/data/task-resource-summary.d.ts.map +1 -0
- package/dist/data/task-resource-summary.js +30 -0
- package/dist/data/task-resource-summary.js.map +1 -0
- package/dist/data/task-status.cjs +8 -2
- package/dist/data/task-status.cjs.map +1 -1
- package/dist/data/task-status.d.ts +3 -0
- package/dist/data/task-status.d.ts.map +1 -1
- package/dist/data/task-status.js +8 -2
- package/dist/data/task-status.js.map +1 -1
- package/dist/data/task-work-progress.cjs +24 -0
- package/dist/data/task-work-progress.cjs.map +1 -0
- package/dist/data/task-work-progress.d.ts +21 -0
- package/dist/data/task-work-progress.d.ts.map +1 -0
- package/dist/data/task-work-progress.js +24 -0
- package/dist/data/task-work-progress.js.map +1 -0
- package/dist/data/test-runner/TestRunner.d.ts +1 -1
- package/dist/data/test-runner/adapter.d.ts +1 -1
- package/dist/data/test-runner/context.d.ts +1 -1
- package/dist/data/use-data-table-virtual.cjs +73 -0
- package/dist/data/use-data-table-virtual.cjs.map +1 -0
- package/dist/data/use-data-table-virtual.d.ts +40 -0
- package/dist/data/use-data-table-virtual.d.ts.map +1 -0
- package/dist/data/use-data-table-virtual.js +73 -0
- package/dist/data/use-data-table-virtual.js.map +1 -0
- package/dist/data/verification/VerificationResults.d.ts +1 -1
- package/dist/data/version-info.cjs +3 -3
- package/dist/data/version-info.js +3 -3
- package/dist/expressions/lang/attributes.cjs +56 -0
- package/dist/expressions/lang/attributes.cjs.map +1 -0
- package/dist/expressions/lang/attributes.d.ts +22 -0
- package/dist/expressions/lang/attributes.d.ts.map +1 -0
- package/dist/expressions/lang/attributes.js +56 -0
- package/dist/expressions/lang/attributes.js.map +1 -0
- package/dist/expressions/lang/completion.cjs +164 -0
- package/dist/expressions/lang/completion.cjs.map +1 -0
- package/dist/expressions/lang/completion.d.ts +29 -0
- package/dist/expressions/lang/completion.d.ts.map +1 -0
- package/dist/expressions/lang/completion.js +164 -0
- package/dist/expressions/lang/completion.js.map +1 -0
- package/dist/expressions/lang/environment.cjs +115 -0
- package/dist/expressions/lang/environment.cjs.map +1 -0
- package/dist/expressions/lang/environment.d.ts +54 -0
- package/dist/expressions/lang/environment.d.ts.map +1 -0
- package/dist/expressions/lang/environment.js +115 -0
- package/dist/expressions/lang/environment.js.map +1 -0
- package/dist/expressions/lang/generated/conformance.json.d.ts +4962 -0
- package/dist/expressions/lang/generated/index.cjs +18 -0
- package/dist/expressions/lang/generated/index.cjs.map +1 -0
- package/dist/expressions/lang/generated/index.d.ts +9 -0
- package/dist/expressions/lang/generated/index.d.ts.map +1 -0
- package/dist/expressions/lang/generated/index.js +18 -0
- package/dist/expressions/lang/generated/index.js.map +1 -0
- package/dist/expressions/lang/generated/languages.json.cjs +18 -0
- package/dist/expressions/lang/generated/languages.json.cjs.map +1 -0
- package/dist/expressions/lang/generated/languages.json.d.ts +2305 -0
- package/dist/expressions/lang/generated/languages.json.js +18 -0
- package/dist/expressions/lang/generated/languages.json.js.map +1 -0
- package/dist/expressions/lang/generated/spec.json.cjs +12 -0
- package/dist/expressions/lang/generated/spec.json.cjs.map +1 -0
- package/dist/expressions/lang/generated/spec.json.d.ts +6260 -0
- package/dist/expressions/lang/generated/spec.json.js +12 -0
- package/dist/expressions/lang/generated/spec.json.js.map +1 -0
- package/dist/expressions/lang/hover.cjs +106 -0
- package/dist/expressions/lang/hover.cjs.map +1 -0
- package/dist/expressions/lang/hover.d.ts +54 -0
- package/dist/expressions/lang/hover.d.ts.map +1 -0
- package/dist/expressions/lang/hover.js +106 -0
- package/dist/expressions/lang/hover.js.map +1 -0
- package/dist/expressions/lang/index.cjs +87 -0
- package/dist/expressions/lang/index.cjs.map +1 -0
- package/dist/expressions/lang/index.d.ts +65 -0
- package/dist/expressions/lang/index.d.ts.map +1 -0
- package/dist/expressions/lang/index.js +90 -0
- package/dist/expressions/lang/index.js.map +1 -0
- package/dist/expressions/lang/merge.cjs +52 -0
- package/dist/expressions/lang/merge.cjs.map +1 -0
- package/dist/expressions/lang/merge.d.ts +12 -0
- package/dist/expressions/lang/merge.d.ts.map +1 -0
- package/dist/expressions/lang/merge.js +52 -0
- package/dist/expressions/lang/merge.js.map +1 -0
- package/dist/expressions/lang/prefix.cjs +91 -0
- package/dist/expressions/lang/prefix.cjs.map +1 -0
- package/dist/expressions/lang/prefix.d.ts +36 -0
- package/dist/expressions/lang/prefix.d.ts.map +1 -0
- package/dist/expressions/lang/prefix.js +91 -0
- package/dist/expressions/lang/prefix.js.map +1 -0
- package/dist/expressions/lang/spec.d.ts +13 -0
- package/dist/expressions/lang/spec.d.ts.map +1 -0
- package/dist/expressions/lang/theme.cjs +97 -0
- package/dist/expressions/lang/theme.cjs.map +1 -0
- package/dist/expressions/lang/theme.d.ts +6 -0
- package/dist/expressions/lang/theme.d.ts.map +1 -0
- package/dist/expressions/lang/theme.js +97 -0
- package/dist/expressions/lang/theme.js.map +1 -0
- package/dist/expressions/lang/types.d.ts +81 -0
- package/dist/expressions/lang/types.d.ts.map +1 -0
- package/dist/expressions/playground/ExpressionPlayground.cjs +308 -0
- package/dist/expressions/playground/ExpressionPlayground.cjs.map +1 -0
- package/dist/expressions/playground/ExpressionPlayground.d.ts +42 -0
- package/dist/expressions/playground/ExpressionPlayground.d.ts.map +1 -0
- package/dist/expressions/playground/ExpressionPlayground.js +291 -0
- package/dist/expressions/playground/ExpressionPlayground.js.map +1 -0
- package/dist/expressions/playground/RunControls.cjs +51 -0
- package/dist/expressions/playground/RunControls.cjs.map +1 -0
- package/dist/expressions/playground/RunControls.d.ts +7 -0
- package/dist/expressions/playground/RunControls.d.ts.map +1 -0
- package/dist/expressions/playground/RunControls.js +51 -0
- package/dist/expressions/playground/RunControls.js.map +1 -0
- package/dist/expressions/playground/VerticalSplit.cjs +109 -0
- package/dist/expressions/playground/VerticalSplit.cjs.map +1 -0
- package/dist/expressions/playground/VerticalSplit.d.ts +23 -0
- package/dist/expressions/playground/VerticalSplit.d.ts.map +1 -0
- package/dist/expressions/playground/VerticalSplit.js +109 -0
- package/dist/expressions/playground/VerticalSplit.js.map +1 -0
- package/dist/expressions/playground/api.cjs +49 -0
- package/dist/expressions/playground/api.cjs.map +1 -0
- package/dist/expressions/playground/api.d.ts +53 -0
- package/dist/expressions/playground/api.d.ts.map +1 -0
- package/dist/expressions/playground/api.js +49 -0
- package/dist/expressions/playground/api.js.map +1 -0
- package/dist/expressions/playground/languages.cjs +88 -0
- package/dist/expressions/playground/languages.cjs.map +1 -0
- package/dist/expressions/playground/languages.d.ts +43 -0
- package/dist/expressions/playground/languages.d.ts.map +1 -0
- package/dist/expressions/playground/languages.js +88 -0
- package/dist/expressions/playground/languages.js.map +1 -0
- package/dist/expressions/playground/panels/GraphPanel.cjs +72 -0
- package/dist/expressions/playground/panels/GraphPanel.cjs.map +1 -0
- package/dist/expressions/playground/panels/GraphPanel.d.ts +19 -0
- package/dist/expressions/playground/panels/GraphPanel.d.ts.map +1 -0
- package/dist/expressions/playground/panels/GraphPanel.js +72 -0
- package/dist/expressions/playground/panels/GraphPanel.js.map +1 -0
- package/dist/expressions/playground/panels/ResultPanel.cjs +82 -0
- package/dist/expressions/playground/panels/ResultPanel.cjs.map +1 -0
- package/dist/expressions/playground/panels/ResultPanel.d.ts +11 -0
- package/dist/expressions/playground/panels/ResultPanel.d.ts.map +1 -0
- package/dist/expressions/playground/panels/ResultPanel.js +82 -0
- package/dist/expressions/playground/panels/ResultPanel.js.map +1 -0
- package/dist/expressions/playground/panels/SpecPanel.cjs +76 -0
- package/dist/expressions/playground/panels/SpecPanel.cjs.map +1 -0
- package/dist/expressions/playground/panels/SpecPanel.d.ts +18 -0
- package/dist/expressions/playground/panels/SpecPanel.d.ts.map +1 -0
- package/dist/expressions/playground/panels/SpecPanel.js +76 -0
- package/dist/expressions/playground/panels/SpecPanel.js.map +1 -0
- package/dist/expressions/playground/panels/TokensPanel.cjs +89 -0
- package/dist/expressions/playground/panels/TokensPanel.cjs.map +1 -0
- package/dist/expressions/playground/panels/TokensPanel.d.ts +15 -0
- package/dist/expressions/playground/panels/TokensPanel.d.ts.map +1 -0
- package/dist/expressions/playground/panels/TokensPanel.js +72 -0
- package/dist/expressions/playground/panels/TokensPanel.js.map +1 -0
- package/dist/expressions/playground/panels/graphNodes.cjs +35 -0
- package/dist/expressions/playground/panels/graphNodes.cjs.map +1 -0
- package/dist/expressions/playground/panels/graphNodes.d.ts +19 -0
- package/dist/expressions/playground/panels/graphNodes.d.ts.map +1 -0
- package/dist/expressions/playground/panels/graphNodes.js +35 -0
- package/dist/expressions/playground/panels/graphNodes.js.map +1 -0
- package/dist/expressions/playground/runAction.cjs +12 -0
- package/dist/expressions/playground/runAction.cjs.map +1 -0
- package/dist/expressions/playground/runAction.d.ts +15 -0
- package/dist/expressions/playground/runAction.d.ts.map +1 -0
- package/dist/expressions/playground/runAction.js +12 -0
- package/dist/expressions/playground/runAction.js.map +1 -0
- package/dist/expressions/playground/runShortcut.cjs +9 -0
- package/dist/expressions/playground/runShortcut.cjs.map +1 -0
- package/dist/expressions/playground/runShortcut.d.ts +2 -0
- package/dist/expressions/playground/runShortcut.d.ts.map +1 -0
- package/dist/expressions/playground/runShortcut.js +9 -0
- package/dist/expressions/playground/runShortcut.js.map +1 -0
- package/dist/expressions/playground/useEditorTheme.cjs +40 -0
- package/dist/expressions/playground/useEditorTheme.cjs.map +1 -0
- package/dist/expressions/playground/useEditorTheme.d.ts +16 -0
- package/dist/expressions/playground/useEditorTheme.d.ts.map +1 -0
- package/dist/expressions/playground/useEditorTheme.js +23 -0
- package/dist/expressions/playground/useEditorTheme.js.map +1 -0
- package/dist/expressions/playground/useEvaluator.cjs +72 -0
- package/dist/expressions/playground/useEvaluator.cjs.map +1 -0
- package/dist/expressions/playground/useEvaluator.d.ts +25 -0
- package/dist/expressions/playground/useEvaluator.d.ts.map +1 -0
- package/dist/expressions/playground/useEvaluator.js +72 -0
- package/dist/expressions/playground/useEvaluator.js.map +1 -0
- package/dist/expressions/playground/useParsedInput.cjs +22 -0
- package/dist/expressions/playground/useParsedInput.cjs.map +1 -0
- package/dist/expressions/playground/useParsedInput.d.ts +20 -0
- package/dist/expressions/playground/useParsedInput.d.ts.map +1 -0
- package/dist/expressions/playground/useParsedInput.js +22 -0
- package/dist/expressions/playground/useParsedInput.js.map +1 -0
- package/dist/expressions/playground/verticalSplitModel.cjs +11 -0
- package/dist/expressions/playground/verticalSplitModel.cjs.map +1 -0
- package/dist/expressions/playground/verticalSplitModel.d.ts +3 -0
- package/dist/expressions/playground/verticalSplitModel.d.ts.map +1 -0
- package/dist/expressions/playground/verticalSplitModel.js +11 -0
- package/dist/expressions/playground/verticalSplitModel.js.map +1 -0
- package/dist/expressions/playground.cjs +18 -0
- package/dist/expressions/playground.cjs.map +1 -0
- package/dist/expressions/playground.d.ts +18 -0
- package/dist/expressions/playground.d.ts.map +1 -0
- package/dist/expressions/playground.js +18 -0
- package/dist/expressions/playground.js.map +1 -0
- package/dist/expressions.cjs +28 -0
- package/dist/expressions.cjs.map +1 -0
- package/dist/expressions.d.ts +10 -0
- package/dist/expressions.d.ts.map +1 -0
- package/dist/expressions.js +28 -0
- package/dist/expressions.js.map +1 -0
- package/dist/hooks/density-provider.d.ts +1 -1
- package/dist/hooks/theme-provider.d.ts +1 -1
- package/dist/hooks/use-density.d.ts +1 -1
- package/dist/hooks/use-resource-clock.cjs +14 -0
- package/dist/hooks/use-resource-clock.cjs.map +1 -0
- package/dist/hooks/use-resource-clock.d.ts +2 -0
- package/dist/hooks/use-resource-clock.d.ts.map +1 -0
- package/dist/hooks/use-resource-clock.js +14 -0
- package/dist/hooks/use-resource-clock.js.map +1 -0
- package/dist/hooks/use-task-run.cjs +12 -3
- package/dist/hooks/use-task-run.cjs.map +1 -1
- package/dist/hooks/use-task-run.d.ts.map +1 -1
- package/dist/hooks/use-task-run.js +12 -3
- package/dist/hooks/use-task-run.js.map +1 -1
- package/dist/hooks/use-theme.d.ts +1 -1
- package/dist/icons/registry.d.ts +1 -1
- package/dist/icons/types.d.ts +1 -1
- package/dist/index.cjs +4 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/layout/AppShell.d.ts +1 -1
- package/dist/layout/AppShell.nav.drag.d.ts +1 -1
- package/dist/layout/AppSidebar.d.ts +1 -1
- package/dist/layout/Panel.d.ts +1 -1
- package/dist/layout/PanelFrame.d.ts +1 -1
- package/dist/layout/Section.d.ts +1 -1
- package/dist/layout/SplitPane.d.ts +1 -1
- package/dist/layout/Tabs.d.ts +1 -1
- package/dist/layout/Workspace.d.ts +1 -1
- package/dist/layout/Workspace.model.d.ts +1 -1
- package/dist/lib/combobox-values.d.ts +1 -1
- package/dist/lib/comment-stage.cjs +31 -0
- package/dist/lib/comment-stage.cjs.map +1 -0
- package/dist/lib/comment-stage.d.ts +8 -0
- package/dist/lib/comment-stage.d.ts.map +1 -0
- package/dist/lib/comment-stage.js +31 -0
- package/dist/lib/comment-stage.js.map +1 -0
- package/dist/monaco/MonacoEditor.cjs +3 -3
- package/dist/monaco/MonacoEditor.cjs.map +1 -1
- package/dist/monaco/MonacoEditor.js +2 -2
- package/dist/monaco/MonacoEditor.js.map +1 -1
- package/dist/monaco/types.d.ts +1 -1
- package/dist/monaco/use-monaco-worker.d.ts +1 -1
- package/dist/overlay/CellActions.d.ts +1 -1
- package/dist/overlay/CommandPalette.d.ts +2 -2
- package/dist/overlay/CommandPalette.model.d.ts +1 -1
- package/dist/overlay/CommandPaletteList.d.ts +1 -1
- package/dist/overlay/DropdownMenu.d.ts +1 -1
- package/dist/overlay/HoverCard.d.ts +1 -1
- package/dist/overlay/Modal.d.ts +2 -2
- package/dist/overlay/Toast.d.ts +1 -1
- package/dist/overlay/TourCard.d.ts +1 -1
- package/dist/overlay/TourProvider.d.ts +1 -1
- package/dist/overlay/dropdownMenuContext.d.ts +1 -1
- package/dist/overlay/toast-context.d.ts +2 -2
- package/dist/overlay/tour-context.d.ts +1 -1
- package/dist/overlay/tour-types.d.ts +1 -1
- package/dist/profiles/connections/connectionBrowserModel.d.ts +1 -1
- package/dist/profiles/connections/connectionQueryWorkspace.d.ts +1 -1
- package/dist/profiles/editor/profileBuilder.d.ts +1 -1
- package/dist/profiles/elasticsearch/esParamOperandExtension.d.ts +1 -1
- package/dist/profiles/fields/profileFieldControls.d.ts +1 -1
- package/dist/profiles/fields/profileFieldIcons.d.ts +1 -1
- package/dist/profiles/fields/profileFieldState.d.ts +1 -1
- package/dist/profiles/query/jsonPathSample.d.ts +1 -1
- package/dist/profiles/query/jsonPathSampleRow.d.ts +1 -1
- package/dist/profiles/query/prometheusResults.d.ts +2 -2
- package/dist/rpc/EndpointList.d.ts +1 -1
- package/dist/rpc/EntityExplorerApp.d.ts +1 -1
- package/dist/rpc/OperationCatalog.d.ts +1 -1
- package/dist/rpc/OperationEntityContextPicker.d.ts +1 -1
- package/dist/rpc/OperationEntityPage.d.ts +1 -1
- package/dist/rpc/OperationResultView.d.ts +1 -1
- package/dist/rpc/RouterProvider.d.ts +1 -1
- package/dist/rpc/SchemaActionForm.d.ts +1 -1
- package/dist/rpc/formMetadata.d.ts +1 -1
- package/dist/rpc/router.d.ts +1 -1
- package/dist/rpc/rpc-story.fixtures.d.ts +1 -1
- package/dist/styles.css +1 -1
- package/dist/utils.cjs +4 -0
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.ts +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +4 -0
- package/dist/utils.js.map +1 -1
- package/package.json +21 -2
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import "react";
|
|
2
|
+
import { useContext } from "react";
|
|
3
|
+
import { PropertiesContext } from "../data/properties-context.js";
|
|
3
4
|
import { cn } from "../lib/utils.js";
|
|
4
5
|
import { LabelIcon, Icon } from "../data/Icon.js";
|
|
5
6
|
import { HoverCard } from "../overlay/HoverCard.js";
|
|
@@ -15,6 +16,20 @@ function FieldsGrid({
|
|
|
15
16
|
className,
|
|
16
17
|
children
|
|
17
18
|
}) {
|
|
19
|
+
const propertiesParent = useContext(PropertiesContext);
|
|
20
|
+
if (layout.mode === "properties") {
|
|
21
|
+
return /* @__PURE__ */ jsx(
|
|
22
|
+
"div",
|
|
23
|
+
{
|
|
24
|
+
className: cn(
|
|
25
|
+
"min-w-0 overflow-hidden rounded-md border border-border",
|
|
26
|
+
propertiesParent && "col-span-full grid grid-cols-subgrid rounded-none border-0",
|
|
27
|
+
className
|
|
28
|
+
),
|
|
29
|
+
children
|
|
30
|
+
}
|
|
31
|
+
);
|
|
32
|
+
}
|
|
18
33
|
if (layout.mode === "inline") {
|
|
19
34
|
const labelMaxWidth = layout.labelMaxWidth ?? "40ch";
|
|
20
35
|
const valueMaxWidth = layout.valueMaxWidth ?? "600px";
|
|
@@ -22,7 +37,9 @@ function FieldsGrid({
|
|
|
22
37
|
"div",
|
|
23
38
|
{
|
|
24
39
|
className: cn("grid", inlineRowGapClass[size], className),
|
|
25
|
-
style: {
|
|
40
|
+
style: {
|
|
41
|
+
gridTemplateColumns: `fit-content(${labelMaxWidth}) minmax(0, ${valueMaxWidth})`
|
|
42
|
+
},
|
|
26
43
|
children
|
|
27
44
|
}
|
|
28
45
|
);
|
|
@@ -63,7 +80,16 @@ function FieldWrapper({
|
|
|
63
80
|
}) {
|
|
64
81
|
if (layout.mode === "inline") {
|
|
65
82
|
return /* @__PURE__ */ jsxs("div", { className: "col-span-2 grid grid-cols-subgrid items-start gap-x-3 gap-y-0.5", children: [
|
|
66
|
-
/* @__PURE__ */ jsx(
|
|
83
|
+
/* @__PURE__ */ jsx(
|
|
84
|
+
"div",
|
|
85
|
+
{
|
|
86
|
+
className: cn(
|
|
87
|
+
"flex min-w-0 items-center",
|
|
88
|
+
controlMinHeightClass[size]
|
|
89
|
+
),
|
|
90
|
+
children: label
|
|
91
|
+
}
|
|
92
|
+
),
|
|
67
93
|
/* @__PURE__ */ jsx("div", { className: "min-w-0", children: value }),
|
|
68
94
|
helper && /* @__PURE__ */ jsx("p", { className: "col-start-2 text-xs text-muted-foreground", children: helper }),
|
|
69
95
|
error && /* @__PURE__ */ jsx("p", { className: "col-start-2 text-xs text-destructive", children: error })
|
|
@@ -93,10 +119,27 @@ function FieldLabel({
|
|
|
93
119
|
"label",
|
|
94
120
|
{
|
|
95
121
|
htmlFor: fieldId,
|
|
96
|
-
className: cn(
|
|
122
|
+
className: cn(
|
|
123
|
+
"flex min-w-0 items-center gap-2 font-medium",
|
|
124
|
+
labelSizeClass[size],
|
|
125
|
+
field.labelClassName
|
|
126
|
+
),
|
|
97
127
|
children: [
|
|
98
|
-
/* @__PURE__ */ jsx(
|
|
99
|
-
|
|
128
|
+
/* @__PURE__ */ jsx(
|
|
129
|
+
LabelIcon,
|
|
130
|
+
{
|
|
131
|
+
icon: field.labelIcon,
|
|
132
|
+
className: "shrink-0 text-[15px] text-muted-foreground"
|
|
133
|
+
}
|
|
134
|
+
),
|
|
135
|
+
/* @__PURE__ */ jsx(
|
|
136
|
+
"span",
|
|
137
|
+
{
|
|
138
|
+
className: "truncate",
|
|
139
|
+
title: field.label !== field.key ? field.key : void 0,
|
|
140
|
+
children: field.label
|
|
141
|
+
}
|
|
142
|
+
),
|
|
100
143
|
field.required && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-destructive", children: "*" }),
|
|
101
144
|
field.badge && /* @__PURE__ */ jsx("span", { className: "shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-muted-foreground", children: field.badge }),
|
|
102
145
|
helpDisplay === "hover" && field.helper && /* @__PURE__ */ jsx(HelpHint, { label: field.label, helper: field.helper })
|
|
@@ -134,17 +177,41 @@ function ObjectSection({
|
|
|
134
177
|
children
|
|
135
178
|
}) {
|
|
136
179
|
const hoverHelp = helpDisplay === "hover" && !!helper;
|
|
137
|
-
return /* @__PURE__ */ jsxs(
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
180
|
+
return /* @__PURE__ */ jsxs(
|
|
181
|
+
"div",
|
|
182
|
+
{
|
|
183
|
+
className: cn(
|
|
184
|
+
"col-span-full flex min-w-0 max-w-full flex-col",
|
|
185
|
+
fieldInnerGapClass[size]
|
|
186
|
+
),
|
|
187
|
+
children: [
|
|
188
|
+
/* @__PURE__ */ jsxs(
|
|
189
|
+
"div",
|
|
190
|
+
{
|
|
191
|
+
className: cn(
|
|
192
|
+
"flex min-w-0 items-center gap-2 border-b border-border pb-1 font-semibold",
|
|
193
|
+
labelSizeClass[size]
|
|
194
|
+
),
|
|
195
|
+
children: [
|
|
196
|
+
/* @__PURE__ */ jsx(
|
|
197
|
+
LabelIcon,
|
|
198
|
+
{
|
|
199
|
+
icon: labelIcon,
|
|
200
|
+
className: "shrink-0 text-[15px] text-muted-foreground"
|
|
201
|
+
}
|
|
202
|
+
),
|
|
203
|
+
/* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", children: label }),
|
|
204
|
+
required && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-destructive", children: "*" }),
|
|
205
|
+
badge && /* @__PURE__ */ jsx("span", { className: "shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-muted-foreground", children: badge }),
|
|
206
|
+
hoverHelp && helper && /* @__PURE__ */ jsx(HelpHint, { label, helper })
|
|
207
|
+
]
|
|
208
|
+
}
|
|
209
|
+
),
|
|
210
|
+
helper && !hoverHelp && /* @__PURE__ */ jsx("p", { className: "min-w-0 break-words text-xs text-muted-foreground", children: helper }),
|
|
211
|
+
children
|
|
212
|
+
]
|
|
213
|
+
}
|
|
214
|
+
);
|
|
148
215
|
}
|
|
149
216
|
export {
|
|
150
217
|
FieldLabel,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-schema-form-layout.js","sources":["../../src/components/json-schema-form-layout.tsx"],"sourcesContent":["import { type ReactNode } from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Icon, LabelIcon, type LabelIconSpec } from \"../data/Icon\";\nimport { UiQuestion } from \"../icons\";\nimport { HoverCard } from \"../overlay/HoverCard\";\nimport type {\n FieldControl,\n FormLayout,\n GridColumns,\n HelpDisplay,\n} from \"./json-schema-form-types\";\nimport { DEFAULT_COLUMN_MIN_WIDTH } from \"./json-schema-form-utils\";\nimport {\n controlMinHeightClass,\n fieldInnerGapClass,\n inlineRowGapClass,\n labelSizeClass,\n stackedRowGapClass,\n type FormSize,\n} from \"./json-schema-form-size\";\n\n// FieldsGrid is the container every group of field rows renders into — the\n// top-level form and each nested object/map. In inline mode it owns the single\n// 2-column track definition: `fit-content(labelMaxWidth)` for the label column,\n// `minmax(0, valueMaxWidth)` for the value column. Every field row is a\n// `subgrid` that inherits these tracks, so all labels share one column width and\n// every value lines up — a real form grid, not per-row independent grids.\n// (`fit-content()` is the only valid CSS for \"size to content, clamped to a max\"\n// — `min(w, max-content)` is rejected by the browser, which silently drops the\n// whole declaration and collapses every row to a stacked-looking column. The\n// template is an inline style because Tailwind can't interpolate runtime widths.)\n// Stacked mode is a plain single-column grid.\nexport function FieldsGrid({\n layout,\n size,\n columns,\n columnMinWidth,\n columnsMaxWidth,\n className,\n children,\n}: {\n layout: FormLayout;\n size: FormSize;\n // Object-level `x-columns`: split a stacked object into N equal columns, or\n // \"auto\" to fit as many `columnMinWidth`-wide columns as the container allows.\n // Fields span one column unless they set `x-col-span`. Ignored in inline mode\n // (which owns its own 2-track label/value layout).\n columns?: GridColumns;\n // `x-columns: \"auto\"` only: the minmax() floor for one column, and an optional\n // cap on the whole grid so controls don't stretch edge to edge on a wide\n // screen. CSS lengths, applied inline — a runtime width can't be a Tailwind\n // arbitrary class, because the scanner never sees it.\n columnMinWidth?: string;\n columnsMaxWidth?: string;\n // Object-level `x-classes`: extra classes merged onto the grid container\n // (e.g. `gap-2`, padding). Applied last so a standard utility wins over the\n // defaults via tailwind-merge.\n className?: string;\n children: ReactNode;\n}) {\n if (layout.mode === \"inline\") {\n const labelMaxWidth = layout.labelMaxWidth ?? \"40ch\";\n const valueMaxWidth = layout.valueMaxWidth ?? \"600px\";\n return (\n <div\n className={cn(\"grid\", inlineRowGapClass[size], className)}\n style={{ gridTemplateColumns: `fit-content(${labelMaxWidth}) minmax(0, ${valueMaxWidth})` }}\n >\n {children}\n </div>\n );\n }\n if (columns === \"auto\") {\n return (\n <div\n className={cn(\"grid gap-x-4\", stackedRowGapClass[size], className)}\n style={{\n gridTemplateColumns: `repeat(auto-fill, minmax(${columnMinWidth ?? DEFAULT_COLUMN_MIN_WIDTH}, 1fr))`,\n ...(columnsMaxWidth ? { maxWidth: columnsMaxWidth } : {}),\n }}\n >\n {children}\n </div>\n );\n }\n if (columns && columns > 1) {\n return (\n <div\n className={cn(\"grid gap-x-3\", stackedRowGapClass[size], className)}\n style={{ gridTemplateColumns: `repeat(${columns}, minmax(0, 1fr))` }}\n >\n {children}\n </div>\n );\n }\n return <div className={cn(\"grid\", stackedRowGapClass[size], className)}>{children}</div>;\n}\n\n// FieldWrapper lays out a single label + value (+ helper/error). In inline mode\n// it is a `subgrid` row spanning the parent FieldsGrid's two columns, so its\n// label and value snap to the shared label/value tracks (helper/error sit under\n// the value column). In stacked mode the label sits tight above its control as\n// one unit, capped at valueMaxWidth so controls don't stretch edge to edge.\nexport function FieldWrapper({\n label,\n value,\n helper,\n error,\n layout,\n size,\n maxWidth,\n}: {\n label: ReactNode;\n value: ReactNode;\n helper?: ReactNode;\n error?: ReactNode;\n layout: FormLayout;\n size: FormSize;\n // Overrides the stacked value-width cap. A field spanning the full row of a\n // multi-column grid passes \"none\", so it actually fills the row it was given\n // instead of stopping at the shared 600px cap.\n maxWidth?: string;\n}) {\n if (layout.mode === \"inline\") {\n return (\n <div className=\"col-span-2 grid grid-cols-subgrid items-start gap-x-3 gap-y-0.5\">\n <div className={cn(\"flex min-w-0 items-center\", controlMinHeightClass[size])}>{label}</div>\n <div className=\"min-w-0\">{value}</div>\n {helper && <p className=\"col-start-2 text-xs text-muted-foreground\">{helper}</p>}\n {error && <p className=\"col-start-2 text-xs text-destructive\">{error}</p>}\n </div>\n );\n }\n return (\n <div\n className=\"flex w-full flex-col gap-1\"\n style={{ maxWidth: maxWidth ?? layout.valueMaxWidth ?? \"600px\" }}\n >\n {label}\n {value}\n {helper && <p className=\"text-xs text-muted-foreground\">{helper}</p>}\n {error && <p className=\"text-xs text-destructive\">{error}</p>}\n </div>\n );\n}\n\nexport function FieldLabel({\n field,\n fieldId,\n size,\n helpDisplay,\n}: {\n field: FieldControl;\n fieldId: string;\n size: FormSize;\n // When \"hover\", the description rides on the label as a `?` instead of being\n // rendered as a paragraph under the control by FieldWrapper.\n helpDisplay?: HelpDisplay;\n}) {\n return (\n <label\n htmlFor={fieldId}\n className={cn(\"flex min-w-0 items-center gap-2 font-medium\", labelSizeClass[size], field.labelClassName)}\n >\n <LabelIcon icon={field.labelIcon} className=\"shrink-0 text-[15px] text-muted-foreground\" />\n <span className=\"truncate\" title={field.label !== field.key ? field.key : undefined}>\n {field.label}\n </span>\n {field.required && <span className=\"shrink-0 text-destructive\">*</span>}\n {field.badge && (\n <span className=\"shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {field.badge}\n </span>\n )}\n {helpDisplay === \"hover\" && field.helper && (\n <HelpHint label={field.label} helper={field.helper} />\n )}\n </label>\n );\n}\n\n// HelpHint is the `?` affordance that replaces a permanent description\n// paragraph. HoverCard opens on focus as well as hover, so the text stays\n// reachable from the keyboard rather than being mouse-only.\nexport function HelpHint({ label, helper }: { label: string; helper: string }) {\n return (\n <HoverCard\n placement=\"top\"\n trigger={\n <button\n type=\"button\"\n aria-label={`About ${label}`}\n className=\"shrink-0 cursor-help text-muted-foreground hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n >\n <Icon icon={UiQuestion} className=\"text-sm\" />\n </button>\n }\n cardClassName=\"max-w-xs whitespace-normal text-left text-xs font-normal text-foreground\"\n >\n {helper}\n </HoverCard>\n );\n}\n\n// ObjectSection renders a nested object as a labelled section: a header row\n// (the field label + required/badge) above its fields, which fill the full\n// width below. It replaces the inline label + bordered box so nested objects\n// read as flat, headed groups rather than indented sub-forms. `col-span-full`\n// makes it span both tracks of an inline FieldsGrid (full width, not crammed\n// into the value column); in a stacked single-column grid it is a no-op.\nexport function ObjectSection({\n label,\n required,\n size,\n badge,\n helper,\n labelIcon,\n helpDisplay,\n children,\n}: {\n label: string;\n required: boolean;\n size: FormSize;\n badge?: string;\n helper?: string;\n labelIcon?: LabelIconSpec;\n helpDisplay?: HelpDisplay;\n children: ReactNode;\n}) {\n const hoverHelp = helpDisplay === \"hover\" && !!helper;\n return (\n <div className={cn(\"col-span-full flex min-w-0 max-w-full flex-col\", fieldInnerGapClass[size])}>\n <div className={cn(\"flex min-w-0 items-center gap-2 border-b border-border pb-1 font-semibold\", labelSizeClass[size])}>\n <LabelIcon icon={labelIcon} className=\"shrink-0 text-[15px] text-muted-foreground\" />\n <span className=\"min-w-0 truncate\">{label}</span>\n {required && <span className=\"shrink-0 text-destructive\">*</span>}\n {badge && (\n <span className=\"shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {badge}\n </span>\n )}\n {hoverHelp && helper && <HelpHint label={label} helper={helper} />}\n </div>\n {helper && !hoverHelp && (\n <p className=\"min-w-0 break-words text-xs text-muted-foreground\">{helper}</p>\n )}\n {children}\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"json-schema-form-layout.js","sources":["../../src/components/json-schema-form-layout.tsx"],"sourcesContent":["import { useContext, type ReactNode } from \"react\";\nimport { PropertiesContext } from \"../data/properties-context\";\nimport { cn } from \"../lib/utils\";\nimport { Icon, LabelIcon, type LabelIconSpec } from \"../data/Icon\";\nimport { UiQuestion } from \"../icons\";\nimport { HoverCard } from \"../overlay/HoverCard\";\nimport type {\n FieldControl,\n FormLayout,\n GridColumns,\n HelpDisplay,\n} from \"./json-schema-form-types\";\nimport { DEFAULT_COLUMN_MIN_WIDTH } from \"./json-schema-form-utils\";\nimport {\n controlMinHeightClass,\n fieldInnerGapClass,\n inlineRowGapClass,\n labelSizeClass,\n stackedRowGapClass,\n type FormSize,\n} from \"./json-schema-form-size\";\n\n// FieldsGrid is the container every group of field rows renders into — the\n// top-level form and each nested object/map. In inline mode it owns the single\n// 2-column track definition: `fit-content(labelMaxWidth)` for the label column,\n// `minmax(0, valueMaxWidth)` for the value column. Every field row is a\n// `subgrid` that inherits these tracks, so all labels share one column width and\n// every value lines up — a real form grid, not per-row independent grids.\n// (`fit-content()` is the only valid CSS for \"size to content, clamped to a max\"\n// — `min(w, max-content)` is rejected by the browser, which silently drops the\n// whole declaration and collapses every row to a stacked-looking column. The\n// template is an inline style because Tailwind can't interpolate runtime widths.)\n// Stacked mode is a plain single-column grid.\nexport function FieldsGrid({\n layout,\n size,\n columns,\n columnMinWidth,\n columnsMaxWidth,\n className,\n children,\n}: {\n layout: FormLayout;\n size: FormSize;\n // Object-level `x-columns`: split a stacked object into N equal columns, or\n // \"auto\" to fit as many `columnMinWidth`-wide columns as the container allows.\n // Fields span one column unless they set `x-col-span`. Ignored in inline mode\n // (which owns its own 2-track label/value layout).\n columns?: GridColumns;\n // `x-columns: \"auto\"` only: the minmax() floor for one column, and an optional\n // cap on the whole grid so controls don't stretch edge to edge on a wide\n // screen. CSS lengths, applied inline — a runtime width can't be a Tailwind\n // arbitrary class, because the scanner never sees it.\n columnMinWidth?: string;\n columnsMaxWidth?: string;\n // Object-level `x-classes`: extra classes merged onto the grid container\n // (e.g. `gap-2`, padding). Applied last so a standard utility wins over the\n // defaults via tailwind-merge.\n className?: string;\n children: ReactNode;\n}) {\n const propertiesParent = useContext(PropertiesContext);\n if (layout.mode === \"properties\") {\n return (\n <div\n className={cn(\n \"min-w-0 overflow-hidden rounded-md border border-border\",\n propertiesParent &&\n \"col-span-full grid grid-cols-subgrid rounded-none border-0\",\n className,\n )}\n >\n {children}\n </div>\n );\n }\n if (layout.mode === \"inline\") {\n const labelMaxWidth = layout.labelMaxWidth ?? \"40ch\";\n const valueMaxWidth = layout.valueMaxWidth ?? \"600px\";\n return (\n <div\n className={cn(\"grid\", inlineRowGapClass[size], className)}\n style={{\n gridTemplateColumns: `fit-content(${labelMaxWidth}) minmax(0, ${valueMaxWidth})`,\n }}\n >\n {children}\n </div>\n );\n }\n if (columns === \"auto\") {\n return (\n <div\n className={cn(\"grid gap-x-4\", stackedRowGapClass[size], className)}\n style={{\n gridTemplateColumns: `repeat(auto-fill, minmax(${columnMinWidth ?? DEFAULT_COLUMN_MIN_WIDTH}, 1fr))`,\n ...(columnsMaxWidth ? { maxWidth: columnsMaxWidth } : {}),\n }}\n >\n {children}\n </div>\n );\n }\n if (columns && columns > 1) {\n return (\n <div\n className={cn(\"grid gap-x-3\", stackedRowGapClass[size], className)}\n style={{ gridTemplateColumns: `repeat(${columns}, minmax(0, 1fr))` }}\n >\n {children}\n </div>\n );\n }\n return (\n <div className={cn(\"grid\", stackedRowGapClass[size], className)}>\n {children}\n </div>\n );\n}\n\n// FieldWrapper lays out a single label + value (+ helper/error). In inline mode\n// it is a `subgrid` row spanning the parent FieldsGrid's two columns, so its\n// label and value snap to the shared label/value tracks (helper/error sit under\n// the value column). In stacked mode the label sits tight above its control as\n// one unit, capped at valueMaxWidth so controls don't stretch edge to edge.\nexport function FieldWrapper({\n label,\n value,\n helper,\n error,\n layout,\n size,\n maxWidth,\n}: {\n label: ReactNode;\n value: ReactNode;\n helper?: ReactNode;\n error?: ReactNode;\n layout: FormLayout;\n size: FormSize;\n // Overrides the stacked value-width cap. A field spanning the full row of a\n // multi-column grid passes \"none\", so it actually fills the row it was given\n // instead of stopping at the shared 600px cap.\n maxWidth?: string;\n}) {\n if (layout.mode === \"inline\") {\n return (\n <div className=\"col-span-2 grid grid-cols-subgrid items-start gap-x-3 gap-y-0.5\">\n <div\n className={cn(\n \"flex min-w-0 items-center\",\n controlMinHeightClass[size],\n )}\n >\n {label}\n </div>\n <div className=\"min-w-0\">{value}</div>\n {helper && (\n <p className=\"col-start-2 text-xs text-muted-foreground\">{helper}</p>\n )}\n {error && (\n <p className=\"col-start-2 text-xs text-destructive\">{error}</p>\n )}\n </div>\n );\n }\n return (\n <div\n className=\"flex w-full flex-col gap-1\"\n style={{ maxWidth: maxWidth ?? layout.valueMaxWidth ?? \"600px\" }}\n >\n {label}\n {value}\n {helper && <p className=\"text-xs text-muted-foreground\">{helper}</p>}\n {error && <p className=\"text-xs text-destructive\">{error}</p>}\n </div>\n );\n}\n\nexport function FieldLabel({\n field,\n fieldId,\n size,\n helpDisplay,\n}: {\n field: FieldControl;\n fieldId: string;\n size: FormSize;\n // When \"hover\", the description rides on the label as a `?` instead of being\n // rendered as a paragraph under the control by FieldWrapper.\n helpDisplay?: HelpDisplay;\n}) {\n return (\n <label\n htmlFor={fieldId}\n className={cn(\n \"flex min-w-0 items-center gap-2 font-medium\",\n labelSizeClass[size],\n field.labelClassName,\n )}\n >\n <LabelIcon\n icon={field.labelIcon}\n className=\"shrink-0 text-[15px] text-muted-foreground\"\n />\n <span\n className=\"truncate\"\n title={field.label !== field.key ? field.key : undefined}\n >\n {field.label}\n </span>\n {field.required && <span className=\"shrink-0 text-destructive\">*</span>}\n {field.badge && (\n <span className=\"shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {field.badge}\n </span>\n )}\n {helpDisplay === \"hover\" && field.helper && (\n <HelpHint label={field.label} helper={field.helper} />\n )}\n </label>\n );\n}\n\n// HelpHint is the `?` affordance that replaces a permanent description\n// paragraph. HoverCard opens on focus as well as hover, so the text stays\n// reachable from the keyboard rather than being mouse-only.\nexport function HelpHint({ label, helper }: { label: string; helper: string }) {\n return (\n <HoverCard\n placement=\"top\"\n trigger={\n <button\n type=\"button\"\n aria-label={`About ${label}`}\n className=\"shrink-0 cursor-help text-muted-foreground hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n >\n <Icon icon={UiQuestion} className=\"text-sm\" />\n </button>\n }\n cardClassName=\"max-w-xs whitespace-normal text-left text-xs font-normal text-foreground\"\n >\n {helper}\n </HoverCard>\n );\n}\n\n// ObjectSection renders a nested object as a labelled section: a header row\n// (the field label + required/badge) above its fields, which fill the full\n// width below. It replaces the inline label + bordered box so nested objects\n// read as flat, headed groups rather than indented sub-forms. `col-span-full`\n// makes it span both tracks of an inline FieldsGrid (full width, not crammed\n// into the value column); in a stacked single-column grid it is a no-op.\nexport function ObjectSection({\n label,\n required,\n size,\n badge,\n helper,\n labelIcon,\n helpDisplay,\n children,\n}: {\n label: string;\n required: boolean;\n size: FormSize;\n badge?: string;\n helper?: string;\n labelIcon?: LabelIconSpec;\n helpDisplay?: HelpDisplay;\n children: ReactNode;\n}) {\n const hoverHelp = helpDisplay === \"hover\" && !!helper;\n return (\n <div\n className={cn(\n \"col-span-full flex min-w-0 max-w-full flex-col\",\n fieldInnerGapClass[size],\n )}\n >\n <div\n className={cn(\n \"flex min-w-0 items-center gap-2 border-b border-border pb-1 font-semibold\",\n labelSizeClass[size],\n )}\n >\n <LabelIcon\n icon={labelIcon}\n className=\"shrink-0 text-[15px] text-muted-foreground\"\n />\n <span className=\"min-w-0 truncate\">{label}</span>\n {required && <span className=\"shrink-0 text-destructive\">*</span>}\n {badge && (\n <span className=\"shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {badge}\n </span>\n )}\n {hoverHelp && helper && <HelpHint label={label} helper={helper} />}\n </div>\n {helper && !hoverHelp && (\n <p className=\"min-w-0 break-words text-xs text-muted-foreground\">\n {helper}\n </p>\n )}\n {children}\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -6,12 +6,14 @@ const Icon = require("../data/Icon.cjs");
|
|
|
6
6
|
const button = require("./button.cjs");
|
|
7
7
|
const InputField = require("./InputField.cjs");
|
|
8
8
|
const ListMenu = require("./ListMenu.cjs");
|
|
9
|
+
const utils = require("../lib/utils.cjs");
|
|
9
10
|
const UiClose = require("../icons/components/UiClose.cjs");
|
|
10
11
|
const UiAdd = require("../icons/components/UiAdd.cjs");
|
|
11
12
|
function CompactListArray({
|
|
12
13
|
field,
|
|
13
14
|
fieldId,
|
|
14
|
-
readOnly
|
|
15
|
+
readOnly,
|
|
16
|
+
presentation = false
|
|
15
17
|
}) {
|
|
16
18
|
const [draft, setDraft] = react.useState("");
|
|
17
19
|
const rawItems = Array.isArray(field.value) ? field.value : [];
|
|
@@ -35,8 +37,11 @@ function CompactListArray({
|
|
|
35
37
|
{
|
|
36
38
|
role: "list",
|
|
37
39
|
"aria-label": field.label,
|
|
38
|
-
className:
|
|
39
|
-
|
|
40
|
+
className: utils.cn(
|
|
41
|
+
"overflow-hidden",
|
|
42
|
+
!presentation && "rounded-md border border-input bg-background"
|
|
43
|
+
),
|
|
44
|
+
"data-jsf-input": presentation ? void 0 : true,
|
|
40
45
|
children: [
|
|
41
46
|
items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
42
47
|
ListMenu.ListMenuItem,
|
|
@@ -51,7 +56,11 @@ function CompactListArray({
|
|
|
51
56
|
id: `${fieldId}-${index}`,
|
|
52
57
|
"aria-label": `${field.label} ${index + 1}`,
|
|
53
58
|
value: item,
|
|
54
|
-
onChange: (next) => field.onChange(
|
|
59
|
+
onChange: (next) => field.onChange(
|
|
60
|
+
items.map(
|
|
61
|
+
(value, itemIndex) => itemIndex === index ? next : value
|
|
62
|
+
)
|
|
63
|
+
),
|
|
55
64
|
className: "h-7 border-0 bg-transparent px-0 shadow-none focus-within:ring-0",
|
|
56
65
|
inputClassName: "font-mono text-xs",
|
|
57
66
|
suffix: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -62,7 +71,9 @@ function CompactListArray({
|
|
|
62
71
|
size: "icon",
|
|
63
72
|
className: "size-6 p-0 text-muted-foreground hover:text-foreground",
|
|
64
73
|
"aria-label": `Remove ${item}`,
|
|
65
|
-
onClick: () => field.onChange(
|
|
74
|
+
onClick: () => field.onChange(
|
|
75
|
+
items.filter((_, itemIndex) => itemIndex !== index)
|
|
76
|
+
),
|
|
66
77
|
children: /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiClose.UiClose, className: "size-3.5" })
|
|
67
78
|
}
|
|
68
79
|
)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-schema-form-list-array.cjs","sources":["../../src/components/json-schema-form-list-array.tsx"],"sourcesContent":["import { useState, type KeyboardEvent } from \"react\";\nimport { Icon } from \"../data/Icon\";\nimport { UiAdd, UiClose } from \"../icons\";\nimport { Button } from \"./button\";\nimport { InputField } from \"./InputField\";\nimport { ListMenu, ListMenuItem } from \"./ListMenu\";\nimport type { FieldControl } from \"./json-schema-form-types\";\n\nexport function CompactListArray({\n field,\n fieldId,\n readOnly,\n}: {\n field: FieldControl;\n fieldId: string;\n readOnly: boolean;\n}) {\n const [draft, setDraft] = useState(\"\");\n const rawItems = Array.isArray(field.value) ? field.value : [];\n if (rawItems.some((item) => typeof item !== \"string\")) {\n throw new Error(`${field.key} compact list received a non-string value`);\n }\n const items = rawItems as string[];\n\n const addDraft = () => {\n const next = draft.trim();\n if (!next) return;\n field.onChange([...items, next]);\n setDraft(\"\");\n };\n\n const addOnEnter = (event: KeyboardEvent<HTMLInputElement | HTMLTextAreaElement
|
|
1
|
+
{"version":3,"file":"json-schema-form-list-array.cjs","sources":["../../src/components/json-schema-form-list-array.tsx"],"sourcesContent":["import { useState, type KeyboardEvent } from \"react\";\nimport { Icon } from \"../data/Icon\";\nimport { UiAdd, UiClose } from \"../icons\";\nimport { Button } from \"./button\";\nimport { InputField } from \"./InputField\";\nimport { ListMenu, ListMenuItem } from \"./ListMenu\";\nimport { cn } from \"../lib/utils\";\nimport type { FieldControl } from \"./json-schema-form-types\";\n\nexport function CompactListArray({\n field,\n fieldId,\n readOnly,\n presentation = false,\n}: {\n field: FieldControl;\n fieldId: string;\n readOnly: boolean;\n presentation?: boolean;\n}) {\n const [draft, setDraft] = useState(\"\");\n const rawItems = Array.isArray(field.value) ? field.value : [];\n if (rawItems.some((item) => typeof item !== \"string\")) {\n throw new Error(`${field.key} compact list received a non-string value`);\n }\n const items = rawItems as string[];\n\n const addDraft = () => {\n const next = draft.trim();\n if (!next) return;\n field.onChange([...items, next]);\n setDraft(\"\");\n };\n\n const addOnEnter = (\n event: KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>,\n ) => {\n if (event.key !== \"Enter\") return;\n event.preventDefault();\n addDraft();\n };\n\n return (\n <ListMenu\n role=\"list\"\n aria-label={field.label}\n className={cn(\n \"overflow-hidden\",\n !presentation && \"rounded-md border border-input bg-background\",\n )}\n data-jsf-input={presentation ? undefined : true}\n >\n {items.map((item, index) => (\n <ListMenuItem\n key={`${item}-${index}`}\n role=\"listitem\"\n variant=\"compact\"\n interactive={false}\n className=\"border-l-0\"\n >\n {readOnly ? (\n <span className=\"block truncate py-1 font-mono text-foreground\">\n {item}\n </span>\n ) : (\n <InputField\n id={`${fieldId}-${index}`}\n aria-label={`${field.label} ${index + 1}`}\n value={item}\n onChange={(next) =>\n field.onChange(\n items.map((value, itemIndex) =>\n itemIndex === index ? next : value,\n ),\n )\n }\n className=\"h-7 border-0 bg-transparent px-0 shadow-none focus-within:ring-0\"\n inputClassName=\"font-mono text-xs\"\n suffix={\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n className=\"size-6 p-0 text-muted-foreground hover:text-foreground\"\n aria-label={`Remove ${item}`}\n onClick={() =>\n field.onChange(\n items.filter((_, itemIndex) => itemIndex !== index),\n )\n }\n >\n <Icon icon={UiClose} className=\"size-3.5\" />\n </Button>\n }\n />\n )}\n </ListMenuItem>\n ))}\n {!readOnly && (\n <ListMenuItem\n role=\"listitem\"\n variant=\"compact\"\n interactive={false}\n className=\"border-l-0 bg-muted/20\"\n >\n <InputField\n id={fieldId}\n aria-label={`Add ${field.label}`}\n value={draft}\n onChange={setDraft}\n onKeyDown={addOnEnter}\n prefix={\n <Icon icon={UiAdd} className=\"size-3.5 text-muted-foreground\" />\n }\n suffix={\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-6 px-2\"\n disabled={!draft.trim()}\n onClick={addDraft}\n >\n Add\n </Button>\n }\n className=\"h-7 border-0 bg-transparent px-0 shadow-none focus-within:ring-0\"\n inputClassName=\"font-mono text-xs\"\n />\n </ListMenuItem>\n )}\n </ListMenu>\n );\n}\n"],"names":["useState","jsxs","ListMenu","cn","jsx","ListMenuItem","InputField","Button","Icon","UiClose","UiAdd"],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { FieldControl } from './json-schema-form-types';
|
|
2
|
-
export declare function CompactListArray({ field, fieldId, readOnly, }: {
|
|
2
|
+
export declare function CompactListArray({ field, fieldId, readOnly, presentation, }: {
|
|
3
3
|
field: FieldControl;
|
|
4
4
|
fieldId: string;
|
|
5
5
|
readOnly: boolean;
|
|
6
|
+
presentation?: boolean;
|
|
6
7
|
}): import("react").JSX.Element;
|
|
7
8
|
//# sourceMappingURL=json-schema-form-list-array.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-schema-form-list-array.d.ts","sourceRoot":"","sources":["../../src/components/json-schema-form-list-array.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"json-schema-form-list-array.d.ts","sourceRoot":"","sources":["../../src/components/json-schema-form-list-array.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,OAAO,EACP,QAAQ,EACR,YAAoB,GACrB,EAAE;IACD,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,+BAkHA"}
|
|
@@ -4,12 +4,14 @@ import { Icon } from "../data/Icon.js";
|
|
|
4
4
|
import { Button } from "./button.js";
|
|
5
5
|
import { InputField } from "./InputField.js";
|
|
6
6
|
import { ListMenu, ListMenuItem } from "./ListMenu.js";
|
|
7
|
+
import { cn } from "../lib/utils.js";
|
|
7
8
|
import { UiClose } from "../icons/components/UiClose.js";
|
|
8
9
|
import { UiAdd } from "../icons/components/UiAdd.js";
|
|
9
10
|
function CompactListArray({
|
|
10
11
|
field,
|
|
11
12
|
fieldId,
|
|
12
|
-
readOnly
|
|
13
|
+
readOnly,
|
|
14
|
+
presentation = false
|
|
13
15
|
}) {
|
|
14
16
|
const [draft, setDraft] = useState("");
|
|
15
17
|
const rawItems = Array.isArray(field.value) ? field.value : [];
|
|
@@ -33,8 +35,11 @@ function CompactListArray({
|
|
|
33
35
|
{
|
|
34
36
|
role: "list",
|
|
35
37
|
"aria-label": field.label,
|
|
36
|
-
className:
|
|
37
|
-
|
|
38
|
+
className: cn(
|
|
39
|
+
"overflow-hidden",
|
|
40
|
+
!presentation && "rounded-md border border-input bg-background"
|
|
41
|
+
),
|
|
42
|
+
"data-jsf-input": presentation ? void 0 : true,
|
|
38
43
|
children: [
|
|
39
44
|
items.map((item, index) => /* @__PURE__ */ jsx(
|
|
40
45
|
ListMenuItem,
|
|
@@ -49,7 +54,11 @@ function CompactListArray({
|
|
|
49
54
|
id: `${fieldId}-${index}`,
|
|
50
55
|
"aria-label": `${field.label} ${index + 1}`,
|
|
51
56
|
value: item,
|
|
52
|
-
onChange: (next) => field.onChange(
|
|
57
|
+
onChange: (next) => field.onChange(
|
|
58
|
+
items.map(
|
|
59
|
+
(value, itemIndex) => itemIndex === index ? next : value
|
|
60
|
+
)
|
|
61
|
+
),
|
|
53
62
|
className: "h-7 border-0 bg-transparent px-0 shadow-none focus-within:ring-0",
|
|
54
63
|
inputClassName: "font-mono text-xs",
|
|
55
64
|
suffix: /* @__PURE__ */ jsx(
|
|
@@ -60,7 +69,9 @@ function CompactListArray({
|
|
|
60
69
|
size: "icon",
|
|
61
70
|
className: "size-6 p-0 text-muted-foreground hover:text-foreground",
|
|
62
71
|
"aria-label": `Remove ${item}`,
|
|
63
|
-
onClick: () => field.onChange(
|
|
72
|
+
onClick: () => field.onChange(
|
|
73
|
+
items.filter((_, itemIndex) => itemIndex !== index)
|
|
74
|
+
),
|
|
64
75
|
children: /* @__PURE__ */ jsx(Icon, { icon: UiClose, className: "size-3.5" })
|
|
65
76
|
}
|
|
66
77
|
)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-schema-form-list-array.js","sources":["../../src/components/json-schema-form-list-array.tsx"],"sourcesContent":["import { useState, type KeyboardEvent } from \"react\";\nimport { Icon } from \"../data/Icon\";\nimport { UiAdd, UiClose } from \"../icons\";\nimport { Button } from \"./button\";\nimport { InputField } from \"./InputField\";\nimport { ListMenu, ListMenuItem } from \"./ListMenu\";\nimport type { FieldControl } from \"./json-schema-form-types\";\n\nexport function CompactListArray({\n field,\n fieldId,\n readOnly,\n}: {\n field: FieldControl;\n fieldId: string;\n readOnly: boolean;\n}) {\n const [draft, setDraft] = useState(\"\");\n const rawItems = Array.isArray(field.value) ? field.value : [];\n if (rawItems.some((item) => typeof item !== \"string\")) {\n throw new Error(`${field.key} compact list received a non-string value`);\n }\n const items = rawItems as string[];\n\n const addDraft = () => {\n const next = draft.trim();\n if (!next) return;\n field.onChange([...items, next]);\n setDraft(\"\");\n };\n\n const addOnEnter = (event: KeyboardEvent<HTMLInputElement | HTMLTextAreaElement
|
|
1
|
+
{"version":3,"file":"json-schema-form-list-array.js","sources":["../../src/components/json-schema-form-list-array.tsx"],"sourcesContent":["import { useState, type KeyboardEvent } from \"react\";\nimport { Icon } from \"../data/Icon\";\nimport { UiAdd, UiClose } from \"../icons\";\nimport { Button } from \"./button\";\nimport { InputField } from \"./InputField\";\nimport { ListMenu, ListMenuItem } from \"./ListMenu\";\nimport { cn } from \"../lib/utils\";\nimport type { FieldControl } from \"./json-schema-form-types\";\n\nexport function CompactListArray({\n field,\n fieldId,\n readOnly,\n presentation = false,\n}: {\n field: FieldControl;\n fieldId: string;\n readOnly: boolean;\n presentation?: boolean;\n}) {\n const [draft, setDraft] = useState(\"\");\n const rawItems = Array.isArray(field.value) ? field.value : [];\n if (rawItems.some((item) => typeof item !== \"string\")) {\n throw new Error(`${field.key} compact list received a non-string value`);\n }\n const items = rawItems as string[];\n\n const addDraft = () => {\n const next = draft.trim();\n if (!next) return;\n field.onChange([...items, next]);\n setDraft(\"\");\n };\n\n const addOnEnter = (\n event: KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>,\n ) => {\n if (event.key !== \"Enter\") return;\n event.preventDefault();\n addDraft();\n };\n\n return (\n <ListMenu\n role=\"list\"\n aria-label={field.label}\n className={cn(\n \"overflow-hidden\",\n !presentation && \"rounded-md border border-input bg-background\",\n )}\n data-jsf-input={presentation ? undefined : true}\n >\n {items.map((item, index) => (\n <ListMenuItem\n key={`${item}-${index}`}\n role=\"listitem\"\n variant=\"compact\"\n interactive={false}\n className=\"border-l-0\"\n >\n {readOnly ? (\n <span className=\"block truncate py-1 font-mono text-foreground\">\n {item}\n </span>\n ) : (\n <InputField\n id={`${fieldId}-${index}`}\n aria-label={`${field.label} ${index + 1}`}\n value={item}\n onChange={(next) =>\n field.onChange(\n items.map((value, itemIndex) =>\n itemIndex === index ? next : value,\n ),\n )\n }\n className=\"h-7 border-0 bg-transparent px-0 shadow-none focus-within:ring-0\"\n inputClassName=\"font-mono text-xs\"\n suffix={\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n className=\"size-6 p-0 text-muted-foreground hover:text-foreground\"\n aria-label={`Remove ${item}`}\n onClick={() =>\n field.onChange(\n items.filter((_, itemIndex) => itemIndex !== index),\n )\n }\n >\n <Icon icon={UiClose} className=\"size-3.5\" />\n </Button>\n }\n />\n )}\n </ListMenuItem>\n ))}\n {!readOnly && (\n <ListMenuItem\n role=\"listitem\"\n variant=\"compact\"\n interactive={false}\n className=\"border-l-0 bg-muted/20\"\n >\n <InputField\n id={fieldId}\n aria-label={`Add ${field.label}`}\n value={draft}\n onChange={setDraft}\n onKeyDown={addOnEnter}\n prefix={\n <Icon icon={UiAdd} className=\"size-3.5 text-muted-foreground\" />\n }\n suffix={\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-6 px-2\"\n disabled={!draft.trim()}\n onClick={addDraft}\n >\n Add\n </Button>\n }\n className=\"h-7 border-0 bg-transparent px-0 shadow-none focus-within:ring-0\"\n inputClassName=\"font-mono text-xs\"\n />\n </ListMenuItem>\n )}\n </ListMenu>\n );\n}\n"],"names":[],"mappings":"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"}
|