@welldot/vue 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/README.md +526 -2
- package/dist/_virtual/_plugin-vue_export-helper.js +8 -0
- package/dist/_virtual/icons/ph/caret-down.js +21 -0
- package/dist/_virtual/icons/ph/caret-down.js.map +1 -0
- package/dist/_virtual/icons/ph/info.js +21 -0
- package/dist/_virtual/icons/ph/info.js.map +1 -0
- package/dist/_virtual/icons/ph/pencil-simple-line.js +21 -0
- package/dist/_virtual/icons/ph/pencil-simple-line.js.map +1 -0
- package/dist/_virtual/icons/ph/pencil-simple.js +21 -0
- package/dist/_virtual/icons/ph/pencil-simple.js.map +1 -0
- package/dist/_virtual/icons/ph/plus.js +21 -0
- package/dist/_virtual/icons/ph/plus.js.map +1 -0
- package/dist/_virtual/icons/ph/x.js +21 -0
- package/dist/_virtual/icons/ph/x.js.map +1 -0
- package/dist/components/WellChip.d.ts +30 -0
- package/dist/components/WellChip.d.ts.map +1 -0
- package/dist/components/WellChip.js +9 -0
- package/dist/components/WellChip.js.map +1 -0
- package/dist/components/WellChip.vue_vue_type_script_setup_true_lang.js +43 -0
- package/dist/components/WellChip.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/WellComboSelect.d.ts +19 -0
- package/dist/components/WellComboSelect.d.ts.map +1 -0
- package/dist/components/WellComboSelect.js +7 -0
- package/dist/components/WellComboSelect.js.map +1 -0
- package/dist/components/WellComboSelect.vue_vue_type_script_setup_true_lang.js +31 -0
- package/dist/components/WellComboSelect.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/WellInfoPopover.d.ts +31 -0
- package/dist/components/WellInfoPopover.d.ts.map +1 -0
- package/dist/components/WellInfoPopover.js +7 -0
- package/dist/components/WellInfoPopover.js.map +1 -0
- package/dist/components/WellInfoPopover.vue_vue_type_script_setup_true_lang.js +50 -0
- package/dist/components/WellInfoPopover.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/WellInputNumber.d.ts +4 -0
- package/dist/components/WellInputNumber.d.ts.map +1 -0
- package/dist/components/WellInputNumber.js +7 -0
- package/dist/components/WellInputNumber.js.map +1 -0
- package/dist/components/WellInputNumber.vue_vue_type_script_setup_true_lang.js +16 -0
- package/dist/components/WellInputNumber.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/WellLabeledField.d.ts +22 -0
- package/dist/components/WellLabeledField.d.ts.map +1 -0
- package/dist/components/WellLabeledField.js +7 -0
- package/dist/components/WellLabeledField.js.map +1 -0
- package/dist/components/WellLabeledField.vue_vue_type_script_setup_true_lang.js +32 -0
- package/dist/components/WellLabeledField.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/WellTagSelect.d.ts +21 -0
- package/dist/components/WellTagSelect.d.ts.map +1 -0
- package/dist/components/WellTagSelect.js +7 -0
- package/dist/components/WellTagSelect.js.map +1 -0
- package/dist/components/WellTagSelect.vue_vue_type_script_setup_true_lang.js +66 -0
- package/dist/components/WellTagSelect.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/WellTextureSelect.d.ts +30 -0
- package/dist/components/WellTextureSelect.d.ts.map +1 -0
- package/dist/components/WellTextureSelect.js +7 -0
- package/dist/components/WellTextureSelect.js.map +1 -0
- package/dist/components/WellTextureSelect.vue_vue_type_script_setup_true_lang.js +103 -0
- package/dist/components/WellTextureSelect.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/WellTextureThumbnail.d.ts +10 -0
- package/dist/components/WellTextureThumbnail.d.ts.map +1 -0
- package/dist/components/WellTextureThumbnail.js +9 -0
- package/dist/components/WellTextureThumbnail.js.map +1 -0
- package/dist/components/WellTextureThumbnail.vue_vue_type_script_setup_true_lang.js +393 -0
- package/dist/components/WellTextureThumbnail.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/WellUnitInput.d.ts +19 -0
- package/dist/components/WellUnitInput.d.ts.map +1 -0
- package/dist/components/WellUnitInput.js +7 -0
- package/dist/components/WellUnitInput.js.map +1 -0
- package/dist/components/WellUnitInput.vue_vue_type_script_setup_true_lang.js +41 -0
- package/dist/components/WellUnitInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/parts/WellInfoTrigger.d.ts +8 -0
- package/dist/components/parts/WellInfoTrigger.d.ts.map +1 -0
- package/dist/components/parts/WellInfoTrigger.js +7 -0
- package/dist/components/parts/WellInfoTrigger.js.map +1 -0
- package/dist/components/parts/WellInfoTrigger.vue_vue_type_script_setup_true_lang.js +26 -0
- package/dist/components/parts/WellInfoTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/composables/useWellNumberFormat.d.ts +12 -0
- package/dist/composables/useWellNumberFormat.d.ts.map +1 -0
- package/dist/composables/useWellNumberFormat.js +25 -0
- package/dist/composables/useWellNumberFormat.js.map +1 -0
- package/dist/composables/useWellText.d.ts +11 -0
- package/dist/composables/useWellText.d.ts.map +1 -0
- package/dist/composables/useWellText.js +15 -0
- package/dist/composables/useWellText.js.map +1 -0
- package/dist/composables/useWellUnits.d.ts +29 -0
- package/dist/composables/useWellUnits.d.ts.map +1 -0
- package/dist/composables/useWellUnits.js +52 -0
- package/dist/composables/useWellUnits.js.map +1 -0
- package/dist/config.d.ts +110 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +76 -0
- package/dist/config.js.map +1 -0
- package/dist/grid/WellDataGrid.d.ts +29 -0
- package/dist/grid/WellDataGrid.d.ts.map +1 -0
- package/dist/grid/WellDataGrid.js +9 -0
- package/dist/grid/WellDataGrid.js.map +1 -0
- package/dist/grid/WellDataGrid.vue_vue_type_script_setup_true_lang.js +84 -0
- package/dist/grid/WellDataGrid.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridCheckboxCell.d.ts +10 -0
- package/dist/grid/cells/GridCheckboxCell.d.ts.map +1 -0
- package/dist/grid/cells/GridCheckboxCell.js +7 -0
- package/dist/grid/cells/GridCheckboxCell.js.map +1 -0
- package/dist/grid/cells/GridCheckboxCell.vue_vue_type_script_setup_true_lang.js +32 -0
- package/dist/grid/cells/GridCheckboxCell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridColorCell.d.ts +7 -0
- package/dist/grid/cells/GridColorCell.d.ts.map +1 -0
- package/dist/grid/cells/GridColorCell.js +7 -0
- package/dist/grid/cells/GridColorCell.js.map +1 -0
- package/dist/grid/cells/GridColorCell.vue_vue_type_script_setup_true_lang.js +18 -0
- package/dist/grid/cells/GridColorCell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridColorPickerEditor.d.ts +12 -0
- package/dist/grid/cells/GridColorPickerEditor.d.ts.map +1 -0
- package/dist/grid/cells/GridColorPickerEditor.js +7 -0
- package/dist/grid/cells/GridColorPickerEditor.js.map +1 -0
- package/dist/grid/cells/GridColorPickerEditor.vue_vue_type_script_setup_true_lang.js +70 -0
- package/dist/grid/cells/GridColorPickerEditor.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridComboEditor.d.ts +14 -0
- package/dist/grid/cells/GridComboEditor.d.ts.map +1 -0
- package/dist/grid/cells/GridComboEditor.js +7 -0
- package/dist/grid/cells/GridComboEditor.js.map +1 -0
- package/dist/grid/cells/GridComboEditor.vue_vue_type_script_setup_true_lang.js +177 -0
- package/dist/grid/cells/GridComboEditor.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridDeleteCell.d.ts +12 -0
- package/dist/grid/cells/GridDeleteCell.d.ts.map +1 -0
- package/dist/grid/cells/GridDeleteCell.js +7 -0
- package/dist/grid/cells/GridDeleteCell.js.map +1 -0
- package/dist/grid/cells/GridDeleteCell.vue_vue_type_script_setup_true_lang.js +33 -0
- package/dist/grid/cells/GridDeleteCell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridDragCell.d.ts +16 -0
- package/dist/grid/cells/GridDragCell.d.ts.map +1 -0
- package/dist/grid/cells/GridDragCell.js +7 -0
- package/dist/grid/cells/GridDragCell.js.map +1 -0
- package/dist/grid/cells/GridDragCell.vue_vue_type_script_setup_true_lang.js +50 -0
- package/dist/grid/cells/GridDragCell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridFormattedCell.d.ts +9 -0
- package/dist/grid/cells/GridFormattedCell.d.ts.map +1 -0
- package/dist/grid/cells/GridFormattedCell.js +7 -0
- package/dist/grid/cells/GridFormattedCell.js.map +1 -0
- package/dist/grid/cells/GridFormattedCell.vue_vue_type_script_setup_true_lang.js +19 -0
- package/dist/grid/cells/GridFormattedCell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridHeaderCell.d.ts +11 -0
- package/dist/grid/cells/GridHeaderCell.d.ts.map +1 -0
- package/dist/grid/cells/GridHeaderCell.js +7 -0
- package/dist/grid/cells/GridHeaderCell.js.map +1 -0
- package/dist/grid/cells/GridHeaderCell.vue_vue_type_script_setup_true_lang.js +35 -0
- package/dist/grid/cells/GridHeaderCell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridNumberEditor.d.ts +9 -0
- package/dist/grid/cells/GridNumberEditor.d.ts.map +1 -0
- package/dist/grid/cells/GridNumberEditor.js +7 -0
- package/dist/grid/cells/GridNumberEditor.js.map +1 -0
- package/dist/grid/cells/GridNumberEditor.vue_vue_type_script_setup_true_lang.js +50 -0
- package/dist/grid/cells/GridNumberEditor.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridSelectButtonCell.d.ts +12 -0
- package/dist/grid/cells/GridSelectButtonCell.d.ts.map +1 -0
- package/dist/grid/cells/GridSelectButtonCell.js +7 -0
- package/dist/grid/cells/GridSelectButtonCell.js.map +1 -0
- package/dist/grid/cells/GridSelectButtonCell.vue_vue_type_script_setup_true_lang.js +52 -0
- package/dist/grid/cells/GridSelectButtonCell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridSelectCell.d.ts +9 -0
- package/dist/grid/cells/GridSelectCell.d.ts.map +1 -0
- package/dist/grid/cells/GridSelectCell.js +7 -0
- package/dist/grid/cells/GridSelectCell.js.map +1 -0
- package/dist/grid/cells/GridSelectCell.vue_vue_type_script_setup_true_lang.js +18 -0
- package/dist/grid/cells/GridSelectCell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridSelectEditor.d.ts +11 -0
- package/dist/grid/cells/GridSelectEditor.d.ts.map +1 -0
- package/dist/grid/cells/GridSelectEditor.js +7 -0
- package/dist/grid/cells/GridSelectEditor.js.map +1 -0
- package/dist/grid/cells/GridSelectEditor.vue_vue_type_script_setup_true_lang.js +51 -0
- package/dist/grid/cells/GridSelectEditor.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridTextEditor.d.ts +9 -0
- package/dist/grid/cells/GridTextEditor.d.ts.map +1 -0
- package/dist/grid/cells/GridTextEditor.js +7 -0
- package/dist/grid/cells/GridTextEditor.js.map +1 -0
- package/dist/grid/cells/GridTextEditor.vue_vue_type_script_setup_true_lang.js +44 -0
- package/dist/grid/cells/GridTextEditor.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridTextureSelectCell.d.ts +7 -0
- package/dist/grid/cells/GridTextureSelectCell.d.ts.map +1 -0
- package/dist/grid/cells/GridTextureSelectCell.js +7 -0
- package/dist/grid/cells/GridTextureSelectCell.js.map +1 -0
- package/dist/grid/cells/GridTextureSelectCell.vue_vue_type_script_setup_true_lang.js +19 -0
- package/dist/grid/cells/GridTextureSelectCell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridTextureSelectEditor.d.ts +13 -0
- package/dist/grid/cells/GridTextureSelectEditor.d.ts.map +1 -0
- package/dist/grid/cells/GridTextureSelectEditor.js +7 -0
- package/dist/grid/cells/GridTextureSelectEditor.js.map +1 -0
- package/dist/grid/cells/GridTextureSelectEditor.vue_vue_type_script_setup_true_lang.js +49 -0
- package/dist/grid/cells/GridTextureSelectEditor.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridUnitCell.d.ts +9 -0
- package/dist/grid/cells/GridUnitCell.d.ts.map +1 -0
- package/dist/grid/cells/GridUnitCell.js +7 -0
- package/dist/grid/cells/GridUnitCell.js.map +1 -0
- package/dist/grid/cells/GridUnitCell.vue_vue_type_script_setup_true_lang.js +29 -0
- package/dist/grid/cells/GridUnitCell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridUnitEditor.d.ts +11 -0
- package/dist/grid/cells/GridUnitEditor.d.ts.map +1 -0
- package/dist/grid/cells/GridUnitEditor.js +7 -0
- package/dist/grid/cells/GridUnitEditor.js.map +1 -0
- package/dist/grid/cells/GridUnitEditor.vue_vue_type_script_setup_true_lang.js +58 -0
- package/dist/grid/cells/GridUnitEditor.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/columnStretchPlugin.d.ts +12 -0
- package/dist/grid/columnStretchPlugin.d.ts.map +1 -0
- package/dist/grid/columnStretchPlugin.js +35 -0
- package/dist/grid/columnStretchPlugin.js.map +1 -0
- package/dist/grid/composables/useCellTemplate.d.ts +35 -0
- package/dist/grid/composables/useCellTemplate.d.ts.map +1 -0
- package/dist/grid/composables/useCellTemplate.js +30 -0
- package/dist/grid/composables/useCellTemplate.js.map +1 -0
- package/dist/grid/composables/useGridOverlayFocusGuard.d.ts +5 -0
- package/dist/grid/composables/useGridOverlayFocusGuard.d.ts.map +1 -0
- package/dist/grid/composables/useGridOverlayFocusGuard.js +12 -0
- package/dist/grid/composables/useGridOverlayFocusGuard.js.map +1 -0
- package/dist/grid/composables/useUnitSuffix.d.ts +9 -0
- package/dist/grid/composables/useUnitSuffix.d.ts.map +1 -0
- package/dist/grid/composables/useUnitSuffix.js +13 -0
- package/dist/grid/composables/useUnitSuffix.js.map +1 -0
- package/dist/grid/index.d.ts +8 -0
- package/dist/grid/index.d.ts.map +1 -0
- package/dist/grid/index.js +4 -0
- package/dist/grid/parts/WellGridAddButton.d.ts +5 -0
- package/dist/grid/parts/WellGridAddButton.d.ts.map +1 -0
- package/dist/grid/parts/WellGridAddButton.js +7 -0
- package/dist/grid/parts/WellGridAddButton.js.map +1 -0
- package/dist/grid/parts/WellGridAddButton.vue_vue_type_script_setup_true_lang.js +23 -0
- package/dist/grid/parts/WellGridAddButton.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/parts/WellGridDeleteButton.d.ts +5 -0
- package/dist/grid/parts/WellGridDeleteButton.d.ts.map +1 -0
- package/dist/grid/parts/WellGridDeleteButton.js +7 -0
- package/dist/grid/parts/WellGridDeleteButton.js.map +1 -0
- package/dist/grid/parts/WellGridDeleteButton.vue_vue_type_script_setup_true_lang.js +21 -0
- package/dist/grid/parts/WellGridDeleteButton.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/types.d.ts +90 -0
- package/dist/grid/types.d.ts.map +1 -0
- package/dist/grid/useWellGridColumns.d.ts +40 -0
- package/dist/grid/useWellGridColumns.d.ts.map +1 -0
- package/dist/grid/useWellGridColumns.js +242 -0
- package/dist/grid/useWellGridColumns.js.map +1 -0
- package/dist/grid.css +407 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/location/WellCoordinateInput.d.ts +14 -0
- package/dist/location/WellCoordinateInput.d.ts.map +1 -0
- package/dist/location/WellCoordinateInput.js +7 -0
- package/dist/location/WellCoordinateInput.js.map +1 -0
- package/dist/location/WellCoordinateInput.vue_vue_type_script_setup_true_lang.js +53 -0
- package/dist/location/WellCoordinateInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/location/WellLocationMap.d.ts +22 -0
- package/dist/location/WellLocationMap.d.ts.map +1 -0
- package/dist/location/WellLocationMap.js +9 -0
- package/dist/location/WellLocationMap.js.map +1 -0
- package/dist/location/WellLocationMap.vue_vue_type_script_setup_true_lang.js +91 -0
- package/dist/location/WellLocationMap.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/location/WellLocationPicker.d.ts +32 -0
- package/dist/location/WellLocationPicker.d.ts.map +1 -0
- package/dist/location/WellLocationPicker.js +7 -0
- package/dist/location/WellLocationPicker.js.map +1 -0
- package/dist/location/WellLocationPicker.vue_vue_type_script_setup_true_lang.js +117 -0
- package/dist/location/WellLocationPicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/location/index.d.ts +6 -0
- package/dist/location/index.d.ts.map +1 -0
- package/dist/location/index.js +5 -0
- package/dist/location/location.d.ts +61 -0
- package/dist/location/location.d.ts.map +1 -0
- package/dist/location/location.js +15 -0
- package/dist/location/location.js.map +1 -0
- package/dist/nuxt/module.d.ts +76 -0
- package/dist/nuxt/module.d.ts.map +1 -0
- package/dist/nuxt/module.js +129 -0
- package/dist/nuxt/module.js.map +1 -0
- package/dist/nuxt/runtime/plugin.d.ts +14 -0
- package/dist/nuxt/runtime/plugin.d.ts.map +1 -0
- package/dist/nuxt/runtime/plugin.js +13 -0
- package/dist/nuxt/runtime/plugin.js.map +1 -0
- package/dist/style.css +2 -0
- package/dist/tailwind.css +160 -0
- package/dist/theme/define.d.ts +44 -0
- package/dist/theme/define.d.ts.map +1 -0
- package/dist/theme/define.js +14 -0
- package/dist/theme/define.js.map +1 -0
- package/dist/theme/index.d.ts +5 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +4 -0
- package/dist/theme/preset.d.ts +20 -0
- package/dist/theme/preset.d.ts.map +1 -0
- package/dist/theme/preset.js +977 -0
- package/dist/theme/preset.js.map +1 -0
- package/dist/theme/pt.d.ts +8 -0
- package/dist/theme/pt.d.ts.map +1 -0
- package/dist/theme/pt.js +66 -0
- package/dist/theme/pt.js.map +1 -0
- package/dist/types.d.ts +38 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +134 -3
package/dist/grid.css
ADDED
|
@@ -0,0 +1,407 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @welldot/vue/grid — global (unscoped) RevoGrid theme for WellDataGrid.
|
|
3
|
+
* Shipped as `dist/grid.css` and imported by `@welldot/vue/tailwind.css`, so
|
|
4
|
+
* it compiles inside the app's Tailwind run. RevoGrid renders cells and
|
|
5
|
+
* editors (`revogr-edit`) outside any SFC scope, hence global selectors.
|
|
6
|
+
*
|
|
7
|
+
* `--accent-soft` / `--color-primary-soft` are set on `.well-data-grid-wrapper`
|
|
8
|
+
* by WellDataGrid's scoped style.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/* ── RevoGrid → welldot theme ─────────────────────────────────────────────
|
|
12
|
+
Token map: --font-mono, --color-surface-*, --color-content-*, --color-primary-*
|
|
13
|
+
────────────────────────────────────────────────────────────────────────── */
|
|
14
|
+
|
|
15
|
+
revogr-attribution {
|
|
16
|
+
display: none !important;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
revo-grid {
|
|
20
|
+
--revo-grid-font: var(--font-mono);
|
|
21
|
+
--revo-grid-background: var(--color-surface-0);
|
|
22
|
+
--revo-grid-foreground: var(--color-content-0);
|
|
23
|
+
--revo-grid-text: var(--color-content-0);
|
|
24
|
+
--revo-grid-divider: var(--color-surface-200);
|
|
25
|
+
--revo-grid-border: var(--color-surface-200);
|
|
26
|
+
--revo-grid-header-bg: var(--color-surface-50);
|
|
27
|
+
--revo-grid-header-color: var(--color-content-500);
|
|
28
|
+
--revo-grid-header-border: var(--color-surface-200);
|
|
29
|
+
--revo-grid-cell-border: var(--color-surface-200);
|
|
30
|
+
--revo-grid-focused-bg: var(--accent-soft);
|
|
31
|
+
--revo-grid-row-hover: var(--accent-soft);
|
|
32
|
+
--revo-grid-row-headers-bg: var(--color-surface-50);
|
|
33
|
+
--revo-grid-row-headers-color: var(--color-content-500);
|
|
34
|
+
--revo-grid-cell-disabled-bg: var(--color-surface-100);
|
|
35
|
+
--revo-grid-primary: var(--color-primary-500);
|
|
36
|
+
--revo-grid-primary-transparent: var(--color-primary-soft);
|
|
37
|
+
font-family: var(--font-mono) !important;
|
|
38
|
+
font-size: 11px !important;
|
|
39
|
+
color: var(--color-content-0);
|
|
40
|
+
border: 1px solid var(--color-surface-200);
|
|
41
|
+
border-radius: 8px;
|
|
42
|
+
overflow: hidden;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/* Header cells — .rgHeaderCell (v4+) and .header-rgCell (older builds) */
|
|
46
|
+
revo-grid .rgHeaderCell,
|
|
47
|
+
revo-grid .header-rgCell {
|
|
48
|
+
background: var(--color-surface-50);
|
|
49
|
+
color: var(--color-content-500);
|
|
50
|
+
font-weight: 400;
|
|
51
|
+
font-size: 9.5px;
|
|
52
|
+
letter-spacing: 0.06em;
|
|
53
|
+
text-transform: uppercase;
|
|
54
|
+
border-bottom: 1px solid var(--color-surface-200) !important;
|
|
55
|
+
border-right: none !important;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/* Body cells */
|
|
59
|
+
revo-grid .rgCell {
|
|
60
|
+
border-bottom: 1px solid var(--color-surface-200) !important;
|
|
61
|
+
border-right: none !important;
|
|
62
|
+
padding: 0 8px;
|
|
63
|
+
display: flex;
|
|
64
|
+
align-items: center;
|
|
65
|
+
color: var(--color-content-0);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* Row states — --accent-soft is tuned for legibility in both light and dark */
|
|
69
|
+
revo-grid .rgRow:hover .rgCell {
|
|
70
|
+
background: var(--accent-soft);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
revo-grid .rgRow.focused-rgRow .rgCell,
|
|
74
|
+
revo-grid .rgRow[selected] .rgCell {
|
|
75
|
+
background: var(--accent-soft);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/* Accent rail on first cell of selected row */
|
|
79
|
+
revo-grid .rgRow[selected] .rgCell:first-child {
|
|
80
|
+
box-shadow: inset 3px 0 0 var(--color-primary-500);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/* Numeric columns — tabular figures, right-aligned */
|
|
84
|
+
revo-grid .rgCell.num {
|
|
85
|
+
justify-content: flex-end;
|
|
86
|
+
font-variant-numeric: tabular-nums;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/* Checkbox columns — readonly for RevoGrid, but interactive via the cell
|
|
90
|
+
template, so suppress the default "disabled" overlay. */
|
|
91
|
+
revo-grid .rgCell.disabled.well-grid-checkbox-cell {
|
|
92
|
+
background-color: transparent;
|
|
93
|
+
--revo-grid-cell-disabled-bg: transparent;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
revo-grid .rgRow:hover .rgCell.disabled.well-grid-checkbox-cell {
|
|
97
|
+
background-color: var(--accent-soft);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/* ── PrimeVue cell editors ────────────────────────────────────────────────── */
|
|
101
|
+
|
|
102
|
+
/* Editor renders in revogr-edit which is a portal outside revo-grid */
|
|
103
|
+
revogr-edit input {
|
|
104
|
+
font-family: var(--font-mono) !important;
|
|
105
|
+
font-size: 11px !important;
|
|
106
|
+
color: var(--color-content-0) !important;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/* InputText root IS the <input>; InputNumber pcInput root is also the <input> */
|
|
110
|
+
revo-grid .well-cell-input {
|
|
111
|
+
width: 100%;
|
|
112
|
+
height: 100%;
|
|
113
|
+
border: none !important;
|
|
114
|
+
border-radius: 0 !important;
|
|
115
|
+
background: var(--color-surface-0) !important;
|
|
116
|
+
box-shadow: inset 0 0 0 1.5px var(--color-focus-ring) !important;
|
|
117
|
+
font-family: var(--font-mono) !important;
|
|
118
|
+
font-size: 11px !important;
|
|
119
|
+
color: var(--color-content-0) !important;
|
|
120
|
+
padding: 0 8px !important;
|
|
121
|
+
outline: none !important;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/* InputNumber wrapper div must fill the cell */
|
|
125
|
+
revo-grid .well-cell-input-number {
|
|
126
|
+
width: 100%;
|
|
127
|
+
height: 100%;
|
|
128
|
+
display: flex;
|
|
129
|
+
align-items: stretch;
|
|
130
|
+
text-align: right !important;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
revogr-edit .well-cell-input-number input {
|
|
134
|
+
text-align: right !important;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/* Numeric cells — right-align */
|
|
138
|
+
revo-grid .rgCell.num .well-cell-input {
|
|
139
|
+
text-align: left;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/* Focus ring */
|
|
143
|
+
revo-grid .rgCell.focused-cell,
|
|
144
|
+
revo-grid revogr-focus {
|
|
145
|
+
border-color: var(--color-primary-500) !important;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/* ── Drag column ─────────────────────────────────────────────────────────── */
|
|
149
|
+
|
|
150
|
+
revo-grid .well-grid-drag-cell {
|
|
151
|
+
padding: 0;
|
|
152
|
+
display: flex;
|
|
153
|
+
align-items: center;
|
|
154
|
+
justify-content: center;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
revo-grid .revo-drag-icon::before {
|
|
158
|
+
content: '';
|
|
159
|
+
display: block;
|
|
160
|
+
width: 12px;
|
|
161
|
+
height: 12px;
|
|
162
|
+
color: var(--color-content-0);
|
|
163
|
+
background-color: currentColor;
|
|
164
|
+
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M102 60a10 10 0 1 1-10-10a10 10 0 0 1 10 10m62 10a10 10 0 1 0-10-10a10 10 0 0 0 10 10m-72 48a10 10 0 1 0 10 10a10 10 0 0 0-10-10m72 0a10 10 0 1 0 10 10a10 10 0 0 0-10-10m-72 68a10 10 0 1 0 10 10a10 10 0 0 0-10-10m72 0a10 10 0 1 0 10 10a10 10 0 0 0-10-10'/%3E%3C/svg%3E");
|
|
165
|
+
mask-size: contain;
|
|
166
|
+
mask-repeat: no-repeat;
|
|
167
|
+
mask-position: center;
|
|
168
|
+
opacity: 0.7;
|
|
169
|
+
transition: opacity 200ms ease;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
revo-grid .revo-draggable:hover .revo-drag-icon::before {
|
|
173
|
+
opacity: 1;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/* ── Delete / actions column ─────────────────────────────────────────────── */
|
|
177
|
+
|
|
178
|
+
revo-grid .well-grid-delete-cell {
|
|
179
|
+
padding: 0;
|
|
180
|
+
display: flex;
|
|
181
|
+
align-items: center;
|
|
182
|
+
justify-content: center;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
revo-grid .well-grid-delete-btn {
|
|
186
|
+
display: flex;
|
|
187
|
+
align-items: center;
|
|
188
|
+
justify-content: center;
|
|
189
|
+
width: 24px;
|
|
190
|
+
height: 24px;
|
|
191
|
+
padding: 0;
|
|
192
|
+
border: none;
|
|
193
|
+
background: none;
|
|
194
|
+
cursor: pointer;
|
|
195
|
+
border-radius: 4px;
|
|
196
|
+
color: var(--color-content-500);
|
|
197
|
+
font-family: var(--font-mono);
|
|
198
|
+
font-size: 18px;
|
|
199
|
+
line-height: 1;
|
|
200
|
+
opacity: 0.4;
|
|
201
|
+
transition:
|
|
202
|
+
opacity 200ms ease,
|
|
203
|
+
color 200ms ease,
|
|
204
|
+
background-color 200ms ease;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
revo-grid .well-grid-delete-btn::before {
|
|
208
|
+
content: '×';
|
|
209
|
+
display: block;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
revo-grid .well-grid-delete-btn:hover {
|
|
213
|
+
opacity: 1;
|
|
214
|
+
color: oklch(50% 0.2 25);
|
|
215
|
+
background-color: color-mix(in srgb, oklch(50% 0.2 25) 8%, transparent);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/* ── PrimeVue Select editor (enum columns) ───────────────────────────────── */
|
|
219
|
+
|
|
220
|
+
revogr-edit .well-cell-select.p-select {
|
|
221
|
+
width: 100%;
|
|
222
|
+
height: 100%;
|
|
223
|
+
border: none;
|
|
224
|
+
border-radius: 0;
|
|
225
|
+
background: var(--color-surface-0);
|
|
226
|
+
box-shadow: inset 0 0 0 1.5px var(--color-focus-ring);
|
|
227
|
+
font-family: var(--font-mono);
|
|
228
|
+
font-size: 11px;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
revogr-edit .well-cell-select .p-select-label {
|
|
232
|
+
padding: 0 8px;
|
|
233
|
+
font-family: var(--font-mono);
|
|
234
|
+
font-size: 11px;
|
|
235
|
+
color: var(--color-content-0);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
revogr-edit .well-cell-select .p-select-dropdown {
|
|
239
|
+
width: 24px;
|
|
240
|
+
color: var(--color-content-500);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
revogr-edit .well-cell-texture-select .p-select-label {
|
|
244
|
+
padding: 0 4px;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/* ── Combo editor (free text + suggestions) ──────────────────────────────── */
|
|
248
|
+
|
|
249
|
+
revogr-edit .well-cell-combo {
|
|
250
|
+
display: flex;
|
|
251
|
+
align-items: stretch;
|
|
252
|
+
width: 100%;
|
|
253
|
+
height: 100%;
|
|
254
|
+
background: var(--color-surface-0);
|
|
255
|
+
box-shadow: inset 0 0 0 1.5px var(--color-focus-ring);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
revogr-edit .well-cell-combo-input {
|
|
259
|
+
flex: 1;
|
|
260
|
+
min-width: 0;
|
|
261
|
+
padding: 0 8px;
|
|
262
|
+
border: none;
|
|
263
|
+
outline: none;
|
|
264
|
+
background: transparent;
|
|
265
|
+
font-family: var(--font-mono);
|
|
266
|
+
font-size: 11px;
|
|
267
|
+
color: var(--color-content-0);
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
revogr-edit .well-cell-combo-toggle {
|
|
271
|
+
display: flex;
|
|
272
|
+
align-items: center;
|
|
273
|
+
justify-content: center;
|
|
274
|
+
width: 24px;
|
|
275
|
+
flex-shrink: 0;
|
|
276
|
+
padding: 0;
|
|
277
|
+
border: none;
|
|
278
|
+
background: none;
|
|
279
|
+
cursor: pointer;
|
|
280
|
+
color: var(--color-content-500);
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
.well-combo-panel {
|
|
284
|
+
position: fixed;
|
|
285
|
+
z-index: 1100;
|
|
286
|
+
max-height: 240px;
|
|
287
|
+
overflow-y: auto;
|
|
288
|
+
margin: 0;
|
|
289
|
+
padding: var(--p-select-list-padding, 0.25rem);
|
|
290
|
+
list-style: none;
|
|
291
|
+
background: var(--p-select-overlay-background, var(--color-surface-0));
|
|
292
|
+
border: 1px solid
|
|
293
|
+
var(--p-select-overlay-border-color, var(--color-surface-200));
|
|
294
|
+
border-radius: var(--p-select-overlay-border-radius, 0.75rem);
|
|
295
|
+
box-shadow: var(--p-select-overlay-shadow);
|
|
296
|
+
color: var(--p-select-overlay-color, var(--color-content-0));
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
.well-combo-hint {
|
|
300
|
+
position: sticky;
|
|
301
|
+
top: calc(-1 * var(--p-select-list-padding, 0.25rem));
|
|
302
|
+
display: flex;
|
|
303
|
+
align-items: center;
|
|
304
|
+
gap: 0.375rem;
|
|
305
|
+
margin: calc(-1 * var(--p-select-list-padding, 0.25rem));
|
|
306
|
+
margin-bottom: 0.25rem;
|
|
307
|
+
padding: 0.5rem 0.75rem 0.25rem;
|
|
308
|
+
font-family: var(--font-display);
|
|
309
|
+
font-size: 0.75rem;
|
|
310
|
+
white-space: nowrap;
|
|
311
|
+
cursor: default;
|
|
312
|
+
color: var(--color-content-300);
|
|
313
|
+
background: var(--p-select-overlay-background, var(--color-surface-0));
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
.well-combo-option {
|
|
317
|
+
cursor: pointer;
|
|
318
|
+
white-space: nowrap;
|
|
319
|
+
border-radius: var(--p-select-option-border-radius, 0.25rem);
|
|
320
|
+
color: var(--p-select-option-color, var(--color-content-0));
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
.well-combo-option.is-active {
|
|
324
|
+
background: var(--p-select-option-focus-background, var(--color-surface-100));
|
|
325
|
+
color: var(--p-select-option-focus-color, var(--color-content-0));
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
.well-combo-option.is-selected {
|
|
329
|
+
background: var(--p-select-option-selected-background);
|
|
330
|
+
color: var(--p-select-option-selected-color);
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
.well-combo-option.is-selected.is-active {
|
|
334
|
+
background: var(--p-select-option-selected-focus-background);
|
|
335
|
+
color: var(--p-select-option-selected-focus-color);
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
/* ── Color editor trigger ─────────────────────────────────────────────────── */
|
|
339
|
+
|
|
340
|
+
revogr-edit .well-cell-color-trigger {
|
|
341
|
+
display: flex;
|
|
342
|
+
align-items: center;
|
|
343
|
+
gap: 6px;
|
|
344
|
+
width: 100%;
|
|
345
|
+
height: 100%;
|
|
346
|
+
padding: 0 8px;
|
|
347
|
+
box-shadow: inset 0 0 0 1.5px var(--color-focus-ring);
|
|
348
|
+
background: var(--color-surface-0);
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
.well-cell-color-swatch {
|
|
352
|
+
display: inline-block;
|
|
353
|
+
width: 12px;
|
|
354
|
+
height: 12px;
|
|
355
|
+
flex-shrink: 0;
|
|
356
|
+
border-radius: 3px;
|
|
357
|
+
border: 1px solid var(--color-surface-300);
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
.well-cell-color-hex {
|
|
361
|
+
font-family: var(--font-mono);
|
|
362
|
+
font-size: 11px;
|
|
363
|
+
color: var(--color-content-0);
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
/* ── Add-row button ──────────────────────────────────────────────────────── */
|
|
367
|
+
|
|
368
|
+
.well-grid-add-btn {
|
|
369
|
+
align-self: flex-start;
|
|
370
|
+
margin-top: 10px;
|
|
371
|
+
display: inline-flex;
|
|
372
|
+
align-items: center;
|
|
373
|
+
gap: 7px;
|
|
374
|
+
|
|
375
|
+
padding: 6px 14px;
|
|
376
|
+
min-height: 32px;
|
|
377
|
+
border-radius: 999px;
|
|
378
|
+
border: 1px dashed var(--color-surface-300);
|
|
379
|
+
background: var(--color-surface-50);
|
|
380
|
+
color: var(--color-content-300);
|
|
381
|
+
|
|
382
|
+
font-family: var(--font-display);
|
|
383
|
+
font-size: 12px;
|
|
384
|
+
font-weight: 500;
|
|
385
|
+
letter-spacing: 0.01em;
|
|
386
|
+
cursor: pointer;
|
|
387
|
+
transition:
|
|
388
|
+
background 120ms ease,
|
|
389
|
+
color 120ms ease,
|
|
390
|
+
border-color 120ms ease;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
.well-grid-add-btn:hover {
|
|
394
|
+
background: var(--color-surface-100);
|
|
395
|
+
color: var(--color-content-0);
|
|
396
|
+
border-color: var(--color-content-0);
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
.well-grid-add-btn:active {
|
|
400
|
+
transform: translateY(0.5px);
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
.well-grid-add-btn:focus-visible {
|
|
404
|
+
outline: none;
|
|
405
|
+
box-shadow: 0 0 0 3px var(--color-primary-soft);
|
|
406
|
+
border-color: var(--color-primary-500);
|
|
407
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export { DEFAULT_COORDINATE_FORMAT, DEFAULT_WELLDOT_LOCALE, DEFAULT_WELLDOT_UNITS, WELLDOT_CONFIG_KEY, createWelldot, resolvePart, resolveWelldotConfig, useWelldotConfig, } from './config';
|
|
2
|
+
export type { ResolvedWelldotConfig, WelldotComponents, WelldotConfig, WelldotPartName, WelldotUnits, } from './config';
|
|
3
|
+
export { LOCALE_MAP, useWellNumberFormat, } from './composables/useWellNumberFormat';
|
|
4
|
+
export { useWellText } from './composables/useWellText';
|
|
5
|
+
export { useWellUnits } from './composables/useWellUnits';
|
|
6
|
+
export type { DisplayUnitType } from './composables/useWellUnits';
|
|
7
|
+
export { default as WellChip } from './components/WellChip';
|
|
8
|
+
export { default as WellComboSelect } from './components/WellComboSelect';
|
|
9
|
+
export { default as WellInfoPopover } from './components/WellInfoPopover';
|
|
10
|
+
export { default as WellInputNumber } from './components/WellInputNumber';
|
|
11
|
+
export { default as WellLabeledField } from './components/WellLabeledField';
|
|
12
|
+
export { default as WellTagSelect } from './components/WellTagSelect';
|
|
13
|
+
export { default as WellTextureSelect } from './components/WellTextureSelect';
|
|
14
|
+
export { default as WellTextureThumbnail } from './components/WellTextureThumbnail';
|
|
15
|
+
export { default as WellUnitInput } from './components/WellUnitInput';
|
|
16
|
+
export type { WellAddButtonProps, WellDeleteButtonProps, WellDragHandleProps, WellIconProps, WellInfoTriggerProps, WellTagOption, WellTextureSelectLabels, } from './types';
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,YAAY,GACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,UAAU,EACV,mBAAmB,GACpB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGlE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG1E,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,uBAAuB,GACxB,MAAM,SAAS,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { DEFAULT_COORDINATE_FORMAT as e, DEFAULT_WELLDOT_LOCALE as t, DEFAULT_WELLDOT_UNITS as n, WELLDOT_CONFIG_KEY as r, createWelldot as i, resolvePart as a, resolveWelldotConfig as o, useWelldotConfig as s } from "./config.js";
|
|
2
|
+
import { LOCALE_MAP as c, useWellNumberFormat as l } from "./composables/useWellNumberFormat.js";
|
|
3
|
+
import { useWellText as u } from "./composables/useWellText.js";
|
|
4
|
+
import { useWellUnits as d } from "./composables/useWellUnits.js";
|
|
5
|
+
import f from "./components/WellChip.js";
|
|
6
|
+
import p from "./components/WellComboSelect.js";
|
|
7
|
+
import m from "./components/WellInfoPopover.js";
|
|
8
|
+
import h from "./components/WellInputNumber.js";
|
|
9
|
+
import g from "./components/WellLabeledField.js";
|
|
10
|
+
import _ from "./components/WellTagSelect.js";
|
|
11
|
+
import v from "./components/WellTextureThumbnail.js";
|
|
12
|
+
import y from "./components/WellTextureSelect.js";
|
|
13
|
+
import b from "./components/WellUnitInput.js";
|
|
14
|
+
export { e as DEFAULT_COORDINATE_FORMAT, t as DEFAULT_WELLDOT_LOCALE, n as DEFAULT_WELLDOT_UNITS, c as LOCALE_MAP, r as WELLDOT_CONFIG_KEY, f as WellChip, p as WellComboSelect, m as WellInfoPopover, h as WellInputNumber, g as WellLabeledField, _ as WellTagSelect, y as WellTextureSelect, v as WellTextureThumbnail, b as WellUnitInput, i as createWelldot, a as resolvePart, o as resolveWelldotConfig, l as useWellNumberFormat, u as useWellText, d as useWellUnits, s as useWelldotConfig };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { WellCoordinateInputProps } from './location';
|
|
2
|
+
type __VLS_Props = WellCoordinateInputProps;
|
|
3
|
+
type __VLS_ModelProps = {
|
|
4
|
+
modelValue?: number;
|
|
5
|
+
};
|
|
6
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
7
|
+
declare const __VLS_export: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
8
|
+
"update:modelValue": (value: number | undefined) => any;
|
|
9
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
10
|
+
"onUpdate:modelValue"?: ((value: number | undefined) => any) | undefined;
|
|
11
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
12
|
+
declare const _default: typeof __VLS_export;
|
|
13
|
+
export default _default;
|
|
14
|
+
//# sourceMappingURL=WellCoordinateInput.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WellCoordinateInput.d.ts","sourceRoot":"","sources":["../../src/location/WellCoordinateInput.vue"],"names":[],"mappings":"AAoGA,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,YAAY,CAAC;AAEpB,KAAK,WAAW,GAAG,wBAAwB,CAAC;AA2C5C,KAAK,gBAAgB,GAAG;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAKF,KAAK,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAgDxD,QAAA,MAAM,YAAY;;;;kFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WellCoordinateInput.js","names":[],"sources":["../../src/location/WellCoordinateInput.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Text input for one coordinate, bound to decimal degrees. The text is a\n * local buffer: it is parsed (DD or DMS), clamped (lat ±90, lng ±180) and\n * reformatted in `format` on blur or Enter. Invalid text reverts to the\n * formatted model. External model/format changes reformat the buffer.\n *\n * Attrs pass through to PrimeVue `InputText`.\n */\nimport {\n clampLat,\n clampLng,\n formatCoord,\n parseToDd,\n type CoordFormat,\n} from '@welldot/utils';\nimport InputText from 'primevue/inputtext';\nimport { computed, ref, watch } from 'vue';\nimport { useWellText } from '../composables/useWellText';\nimport { useWelldotConfig } from '../config';\nimport {\n COORDINATE_PLACEHOLDERS,\n type WellCoordinateInputProps,\n} from './location';\n\nconst props = defineProps<WellCoordinateInputProps>();\nconst model = defineModel<number>();\nconst config = useWelldotConfig();\nconst text = useWellText();\n\nconst isLat = computed(() => props.axis === 'lat');\nconst activeFormat = computed<CoordFormat>(\n () => props.format ?? config.coordinateFormat,\n);\nconst placeholderText = computed(\n () =>\n text(props.placeholder) ??\n COORDINATE_PLACEHOLDERS[props.axis][activeFormat.value],\n);\n\nfunction display(value: number | null | undefined): string {\n return value == null || !Number.isFinite(value)\n ? ''\n : formatCoord(value, activeFormat.value, isLat.value);\n}\n\nconst raw = ref('');\n\nwatch([model, activeFormat, isLat], () => (raw.value = display(model.value)), {\n immediate: true,\n});\n\nfunction commit() {\n // Untouched text (focus + blur, Enter on the shown value): reparsing the\n // rounded display would rewrite the exact model.\n if (raw.value === display(model.value)) return;\n const parsed = parseToDd(raw.value);\n if (isNaN(parsed)) {\n raw.value = display(model.value);\n return;\n }\n const clamped = isLat.value ? clampLat(parsed) : clampLng(parsed);\n model.value = clamped;\n // A parent-bound model only updates on the next render; format the value\n // just committed rather than the (still stale) prop.\n raw.value = display(clamped);\n}\n</script>\n\n<template>\n <InputText\n v-model=\"raw\"\n class=\"w-full font-mono\"\n :placeholder=\"placeholderText\"\n @blur=\"commit\"\n @keydown.enter=\"commit\"\n />\n</template>\n"],"mappings":""}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { useWelldotConfig as e } from "../config.js";
|
|
2
|
+
import { useWellText as t } from "../composables/useWellText.js";
|
|
3
|
+
import { COORDINATE_PLACEHOLDERS as n } from "./location.js";
|
|
4
|
+
import { computed as r, createBlock as i, defineComponent as a, mergeModels as o, openBlock as s, ref as c, unref as l, useModel as u, watch as d, withKeys as f } from "vue";
|
|
5
|
+
import { clampLat as p, clampLng as m, formatCoord as h, parseToDd as g } from "@welldot/utils";
|
|
6
|
+
import _ from "primevue/inputtext";
|
|
7
|
+
//#region src/location/WellCoordinateInput.vue?vue&type=script&setup=true&lang.ts
|
|
8
|
+
var v = /* @__PURE__ */ a({
|
|
9
|
+
__name: "WellCoordinateInput",
|
|
10
|
+
props: /* @__PURE__ */ o({
|
|
11
|
+
axis: {},
|
|
12
|
+
format: {},
|
|
13
|
+
placeholder: {}
|
|
14
|
+
}, {
|
|
15
|
+
modelValue: {},
|
|
16
|
+
modelModifiers: {}
|
|
17
|
+
}),
|
|
18
|
+
emits: ["update:modelValue"],
|
|
19
|
+
setup(a) {
|
|
20
|
+
let o = a, v = u(a, "modelValue"), y = e(), b = t(), x = r(() => o.axis === "lat"), S = r(() => o.format ?? y.coordinateFormat), C = r(() => b(o.placeholder) ?? n[o.axis][S.value]);
|
|
21
|
+
function w(e) {
|
|
22
|
+
return e == null || !Number.isFinite(e) ? "" : h(e, S.value, x.value);
|
|
23
|
+
}
|
|
24
|
+
let T = c("");
|
|
25
|
+
d([
|
|
26
|
+
v,
|
|
27
|
+
S,
|
|
28
|
+
x
|
|
29
|
+
], () => T.value = w(v.value), { immediate: !0 });
|
|
30
|
+
function E() {
|
|
31
|
+
if (T.value === w(v.value)) return;
|
|
32
|
+
let e = g(T.value);
|
|
33
|
+
if (isNaN(e)) {
|
|
34
|
+
T.value = w(v.value);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
let t = x.value ? p(e) : m(e);
|
|
38
|
+
v.value = t, T.value = w(t);
|
|
39
|
+
}
|
|
40
|
+
return (e, t) => (s(), i(l(_), {
|
|
41
|
+
modelValue: T.value,
|
|
42
|
+
"onUpdate:modelValue": t[0] || (t[0] = (e) => T.value = e),
|
|
43
|
+
class: "w-full font-mono",
|
|
44
|
+
placeholder: C.value,
|
|
45
|
+
onBlur: E,
|
|
46
|
+
onKeydown: f(E, ["enter"])
|
|
47
|
+
}, null, 8, ["modelValue", "placeholder"]));
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
//#endregion
|
|
51
|
+
export { v as default };
|
|
52
|
+
|
|
53
|
+
//# sourceMappingURL=WellCoordinateInput.vue_vue_type_script_setup_true_lang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WellCoordinateInput.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../src/location/WellCoordinateInput.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Text input for one coordinate, bound to decimal degrees. The text is a\n * local buffer: it is parsed (DD or DMS), clamped (lat ±90, lng ±180) and\n * reformatted in `format` on blur or Enter. Invalid text reverts to the\n * formatted model. External model/format changes reformat the buffer.\n *\n * Attrs pass through to PrimeVue `InputText`.\n */\nimport {\n clampLat,\n clampLng,\n formatCoord,\n parseToDd,\n type CoordFormat,\n} from '@welldot/utils';\nimport InputText from 'primevue/inputtext';\nimport { computed, ref, watch } from 'vue';\nimport { useWellText } from '../composables/useWellText';\nimport { useWelldotConfig } from '../config';\nimport {\n COORDINATE_PLACEHOLDERS,\n type WellCoordinateInputProps,\n} from './location';\n\nconst props = defineProps<WellCoordinateInputProps>();\nconst model = defineModel<number>();\nconst config = useWelldotConfig();\nconst text = useWellText();\n\nconst isLat = computed(() => props.axis === 'lat');\nconst activeFormat = computed<CoordFormat>(\n () => props.format ?? config.coordinateFormat,\n);\nconst placeholderText = computed(\n () =>\n text(props.placeholder) ??\n COORDINATE_PLACEHOLDERS[props.axis][activeFormat.value],\n);\n\nfunction display(value: number | null | undefined): string {\n return value == null || !Number.isFinite(value)\n ? ''\n : formatCoord(value, activeFormat.value, isLat.value);\n}\n\nconst raw = ref('');\n\nwatch([model, activeFormat, isLat], () => (raw.value = display(model.value)), {\n immediate: true,\n});\n\nfunction commit() {\n // Untouched text (focus + blur, Enter on the shown value): reparsing the\n // rounded display would rewrite the exact model.\n if (raw.value === display(model.value)) return;\n const parsed = parseToDd(raw.value);\n if (isNaN(parsed)) {\n raw.value = display(model.value);\n return;\n }\n const clamped = isLat.value ? clampLat(parsed) : clampLng(parsed);\n model.value = clamped;\n // A parent-bound model only updates on the next render; format the value\n // just committed rather than the (still stale) prop.\n raw.value = display(clamped);\n}\n</script>\n\n<template>\n <InputText\n v-model=\"raw\"\n class=\"w-full font-mono\"\n :placeholder=\"placeholderText\"\n @blur=\"commit\"\n @keydown.enter=\"commit\"\n />\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;EAyBA,IAAM,IAAQ,GACR,IAAQ,EAAmB,GAAA,aAAE,EAC7B,IAAS,GAAkB,EAC3B,IAAO,GAAa,EAEpB,IAAQ,QAAe,EAAM,SAAS,MAAM,EAC5C,IAAe,QACb,EAAM,UAAU,EAAO,iBAC9B,EACK,IAAkB,QAEpB,EAAK,EAAM,YAAY,IACvB,EAAwB,EAAM,MAAM,EAAa,OACpD;EAED,SAAS,EAAQ,GAA0C;AACzD,UAAO,KAAS,QAAQ,CAAC,OAAO,SAAS,EAAK,GAC1C,KACA,EAAY,GAAO,EAAa,OAAO,EAAM,MAAM;;EAGzD,IAAM,IAAM,EAAI,GAAG;AAEnB,IAAM;GAAC;GAAO;GAAc;GAAM,QAAS,EAAI,QAAQ,EAAQ,EAAM,MAAM,EAAG,EAC5E,WAAW,IACZ,CAAC;EAEF,SAAS,IAAS;AAGhB,OAAI,EAAI,UAAU,EAAQ,EAAM,MAAM,CAAE;GACxC,IAAM,IAAS,EAAU,EAAI,MAAM;AACnC,OAAI,MAAM,EAAO,EAAE;AACjB,MAAI,QAAQ,EAAQ,EAAM,MAAM;AAChC;;GAEF,IAAM,IAAU,EAAM,QAAQ,EAAS,EAAO,GAAG,EAAS,EAAO;AAIjE,GAHA,EAAM,QAAQ,GAGd,EAAI,QAAQ,EAAQ,EAAQ;;yBAK5B,EAME,EAAA,EAAA,EAAA;eALS,EAAA;mDAAG,QAAA;GACZ,OAAM;GACL,aAAa,EAAA;GACb,QAAM;GACN,WAAO,EAAQ,GAAM,CAAA,QAAA,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { WellLocationMapProps } from './location';
|
|
2
|
+
type __VLS_Props = WellLocationMapProps;
|
|
3
|
+
type __VLS_ModelProps = {
|
|
4
|
+
'lat': number;
|
|
5
|
+
'lng': number;
|
|
6
|
+
};
|
|
7
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
8
|
+
declare const __VLS_export: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
9
|
+
"update:lat": (value: number) => any;
|
|
10
|
+
"update:lng": (value: number) => any;
|
|
11
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
12
|
+
"onUpdate:lat"?: ((value: number) => any) | undefined;
|
|
13
|
+
"onUpdate:lng"?: ((value: number) => any) | undefined;
|
|
14
|
+
}>, {
|
|
15
|
+
height: string;
|
|
16
|
+
readonly: boolean;
|
|
17
|
+
tileUrl: string;
|
|
18
|
+
attribution: string;
|
|
19
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
20
|
+
declare const _default: typeof __VLS_export;
|
|
21
|
+
export default _default;
|
|
22
|
+
//# sourceMappingURL=WellLocationMap.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WellLocationMap.d.ts","sourceRoot":"","sources":["../../src/location/WellLocationMap.vue"],"names":[],"mappings":"AAqNA,OAAO,EAML,KAAK,oBAAoB,EAC1B,MAAM,YAAY,CAAC;AAIpB,KAAK,WAAW,GAAG,oBAAoB,CAAC;AA6IxC,KAAK,gBAAgB,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACb,CAAC;AAaF,KAAK,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAoCxD,QAAA,MAAM,YAAY;;;;;;;;;;;6EAIhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import e from "../_virtual/_plugin-vue_export-helper.js";
|
|
2
|
+
import t from "./WellLocationMap.vue_vue_type_script_setup_true_lang.js";
|
|
3
|
+
/* empty css */
|
|
4
|
+
//#region src/location/WellLocationMap.vue
|
|
5
|
+
var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-356c3199"]]);
|
|
6
|
+
//#endregion
|
|
7
|
+
export { n as default };
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=WellLocationMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WellLocationMap.js","names":[],"sources":["../../src/location/WellLocationMap.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Leaflet map with a single pin at `lat`/`lng`. Click the map or drag the\n * pin to move it (unless `readonly`, which can change at any time). Leaflet and its CSS are imported\n * dynamically on mount, so server-side rendering outputs an empty `div` and\n * no `<ClientOnly>` is needed. `leaflet` is an optional peer dependency.\n *\n * The pin is an inline SVG (`L.divIcon`) filled with the theme's primary\n * colour; no marker images are fetched.\n */\nimport { clampLat, clampLng } from '@welldot/utils';\nimport type { LeafletMouseEvent, Map as LeafletMap, Marker } from 'leaflet';\nimport { onMounted, onUnmounted, useTemplateRef, watch } from 'vue';\nimport {\n DEFAULT_TILE_ATTRIBUTION,\n DEFAULT_TILE_URL,\n MARKER_ANCHOR,\n MARKER_SIZE,\n MARKER_SVG,\n type WellLocationMapProps,\n} from './location';\n\ntype Leaflet = typeof import('leaflet');\n\nconst props = withDefaults(defineProps<WellLocationMapProps>(), {\n readonly: false,\n tileUrl: DEFAULT_TILE_URL,\n attribution: DEFAULT_TILE_ATTRIBUTION,\n height: '16rem',\n});\nconst lat = defineModel<number>('lat', { required: true });\nconst lng = defineModel<number>('lng', { required: true });\n\nconst mapEl = useTemplateRef<HTMLElement>('mapEl');\nlet map: LeafletMap | null = null;\nlet marker: Marker | null = null;\nlet resizeObserver: ResizeObserver | null = null;\nlet unmounted = false;\n/** Leaflet namespace, once loaded on mount. */\nlet leaflet: Leaflet | null = null;\n\n/** Leaflet ships UMD; depending on the bundler the namespace is `default`. */\nasync function loadLeaflet(): Promise<Leaflet> {\n const mod = (await import('leaflet')) as Leaflet & { default?: Leaflet };\n return mod.default ?? mod;\n}\n\nfunction finite(value: number | null | undefined): number {\n return typeof value === 'number' && Number.isFinite(value) ? value : 0;\n}\n\nfunction setCoordinates(newLat: number, newLng: number) {\n lat.value = clampLat(newLat);\n lng.value = clampLng(newLng);\n}\n\n/** Map click handler while editable (kept to remove it again). */\nlet onMapClick: ((e: LeafletMouseEvent) => void) | null = null;\n\nfunction onMarkerDragEnd() {\n if (!marker) return;\n const pos = marker.getLatLng();\n setCoordinates(pos.lat, pos.lng);\n}\n\n/**\n * Turns pin dragging and click-to-move on or off. Called on mount and\n * whenever `readonly` changes.\n */\nfunction setEditable(L: Leaflet, editable: boolean) {\n if (!map || !marker) return;\n const m = map;\n const pin = marker;\n\n pin.options.draggable = editable;\n if (editable) pin.dragging?.enable();\n else pin.dragging?.disable();\n pin.off('dragend', onMarkerDragEnd);\n if (editable) pin.on('dragend', onMarkerDragEnd);\n\n if (onMapClick) m.off('click', onMapClick);\n onMapClick = null;\n if (editable) {\n onMapClick = e => {\n const clamped = L.latLng(clampLat(e.latlng.lat), clampLng(e.latlng.lng));\n pin.setLatLng(clamped);\n setCoordinates(clamped.lat, clamped.lng);\n };\n m.on('click', onMapClick);\n }\n\n // Leaflet gives every interactive marker a pointer cursor; a read-only\n // pin does nothing on click or drag.\n pin.getElement()?.style.setProperty('cursor', editable ? '' : 'default');\n}\n\nonMounted(async () => {\n const L = await loadLeaflet();\n await import('leaflet/dist/leaflet.css');\n // Unmounted while leaflet was loading.\n if (unmounted || !mapEl.value) return;\n\n const initialLat = clampLat(finite(lat.value));\n const initialLng = clampLng(finite(lng.value));\n const isDefault = initialLat === 0 && initialLng === 0;\n\n map = L.map(mapEl.value, {\n zoomControl: true,\n maxBounds: L.latLngBounds([-90, -180], [90, 180]),\n maxBoundsViscosity: 1.0,\n minZoom: 2,\n }).setView([initialLat, initialLng], isDefault ? 2 : 13);\n\n L.tileLayer(props.tileUrl, {\n attribution: props.attribution,\n maxZoom: 19,\n noWrap: true,\n }).addTo(map);\n\n const icon = L.divIcon({\n className: 'well-location-marker',\n html: MARKER_SVG,\n iconSize: MARKER_SIZE,\n iconAnchor: MARKER_ANCHOR,\n });\n\n marker = L.marker([initialLat, initialLng], {\n icon,\n draggable: !props.readonly,\n }).addTo(map);\n\n leaflet = L;\n setEditable(L, !props.readonly);\n\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(() => map?.invalidateSize());\n resizeObserver.observe(mapEl.value);\n }\n});\n\nonUnmounted(() => {\n unmounted = true;\n resizeObserver?.disconnect();\n resizeObserver = null;\n map?.remove();\n map = null;\n marker = null;\n onMapClick = null;\n});\n\nwatch(\n () => props.readonly,\n readonly => {\n if (leaflet) setEditable(leaflet, !readonly);\n },\n);\n\nwatch([lat, lng], ([newLat, newLng]) => {\n if (!map || !marker) return;\n const clampedLat = clampLat(finite(newLat));\n const clampedLng = clampLng(finite(newLng));\n marker.setLatLng([clampedLat, clampedLng]);\n map.setView([clampedLat, clampedLng], map.getZoom());\n});\n</script>\n\n<template>\n <div\n ref=\"mapEl\"\n class=\"well-location-map w-full rounded-lg overflow-hidden border border-surface-200\"\n :style=\"{ height: props.height }\"\n />\n</template>\n\n<style scoped>\n/* Leaflet creates the marker element outside Vue's render, so the scoped\n attribute is only on the map root: reach the marker through `:deep`. */\n.well-location-map :deep(.well-location-marker) {\n background: none;\n border: none;\n}\n\n.well-location-map :deep(.well-location-marker svg) {\n display: block;\n overflow: visible;\n filter: drop-shadow(0 1px 1.5px rgb(0 0 0 / 0.35));\n}\n\n.well-location-map :deep(.well-location-marker__pin) {\n fill: var(--p-primary-color, var(--color-primary-500, #2563eb));\n stroke: rgb(0 0 0 / 0.2);\n stroke-width: 0.75;\n}\n\n.well-location-map :deep(.well-location-marker__dot) {\n fill: #fff;\n}\n</style>\n"],"mappings":""}
|