@vertexvis/ui 0.1.0-canary.2 → 0.1.0-canary.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{color-circle-picker-13396ec4.js → color-circle-picker-a8f9a80a.js} +1 -1
- package/dist/cjs/color-picker-2a4820fa.js +46 -0
- package/dist/cjs/{color-circle-05be54bf.js → color-swatch-8aaf6c0b.js} +42 -17
- package/dist/cjs/components.cjs.js +1 -1
- package/dist/cjs/{dialog-88e2308a.js → dialog-34f1dd6e.js} +1 -1
- package/dist/cjs/dom-b6c5fbf4.js +13 -0
- package/dist/cjs/{icon-button-786427d6.js → icon-button-2256a63a.js} +1 -1
- package/dist/cjs/{icon-460fd0f5.js → icon-c3ab7a57.js} +1 -1
- package/dist/cjs/{icon-helper-ba408f49.js → icon-helper-35893713.js} +60 -0
- package/dist/cjs/index.cjs.js +20 -14
- package/dist/cjs/lib-1bd1e383.js +9 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{popover-d9ec8e10.js → popover-942209b8.js} +23 -1
- package/dist/cjs/{result-list-1e592c3c.js → result-list-241ffe8d.js} +46 -2
- package/dist/cjs/search-bar-2e7ee35a.js +527 -0
- package/dist/cjs/{select-0eb7203f.js → select-2b2bdb97.js} +27 -4
- package/dist/cjs/tab-4335cd8f.js +26 -0
- package/dist/cjs/tabs-ece62a01.js +111 -0
- package/dist/cjs/{text-field-0397fb34.js → text-field-bccbde1f.js} +1 -0
- package/dist/cjs/{tooltip-80a7b722.js → tooltip-9ac797a0.js} +59 -23
- package/dist/cjs/vertex-color-circle-picker.cjs.entry.js +1 -1
- package/dist/cjs/vertex-color-picker.cjs.entry.js +2 -1
- package/dist/cjs/vertex-color-swatch.cjs.entry.js +12 -0
- package/dist/cjs/vertex-dialog.cjs.entry.js +1 -1
- package/dist/cjs/vertex-icon-button.cjs.entry.js +2 -2
- package/dist/cjs/vertex-icon.cjs.entry.js +2 -2
- package/dist/cjs/vertex-popover.cjs.entry.js +1 -1
- package/dist/cjs/vertex-result-list.cjs.entry.js +1 -1
- package/dist/cjs/vertex-search-bar.cjs.entry.js +1 -1
- package/dist/cjs/vertex-select.cjs.entry.js +1 -1
- package/dist/cjs/{vertex-color-circle.cjs.entry.js → vertex-tab.cjs.entry.js} +3 -2
- package/dist/cjs/vertex-tabs.cjs.entry.js +12 -0
- package/dist/cjs/vertex-textfield.cjs.entry.js +1 -1
- package/dist/cjs/vertex-tooltip.cjs.entry.js +2 -1
- package/dist/collection/collection-manifest.json +5 -3
- package/dist/collection/components/color-circle-picker/color-circle-picker.js +7 -7
- package/dist/collection/components/color-picker/color-picker.css +95 -15
- package/dist/collection/components/color-picker/color-picker.js +57 -3
- package/dist/collection/components/color-swatch/color-swatch.css +43 -0
- package/dist/collection/components/{color-circle/color-circle.js → color-swatch/color-swatch.js} +96 -23
- package/dist/collection/components/color-swatch/lib.js +5 -0
- package/dist/collection/components/dialog/dialog.css +0 -1
- package/dist/collection/components/icon/icon-helper.js +33 -0
- package/dist/collection/components/icon/icon.js +1 -1
- package/dist/collection/components/icon/icons/caution.js +2 -0
- package/dist/collection/components/icon/icons/compare.js +2 -0
- package/dist/collection/components/icon/icons/compress.js +2 -0
- package/dist/collection/components/icon/icons/cube-stack.js +2 -0
- package/dist/collection/components/icon/icons/expand.js +2 -0
- package/dist/collection/components/icon/icons/pin-text-square.js +2 -0
- package/dist/collection/components/icon/icons/plus-with-arrow.js +2 -0
- package/dist/collection/components/icon/icons/pmi.js +2 -0
- package/dist/collection/components/icon/icons/square-dot-outline.js +2 -0
- package/dist/collection/components/icon/icons/update.js +2 -0
- package/dist/collection/components/icon/icons/views.js +2 -0
- package/dist/collection/components/icon-button/icon-button.js +1 -1
- package/dist/collection/components/index.js +3 -1
- package/dist/collection/components/menu/menu.js +1 -1
- package/dist/collection/components/popover/popover.js +51 -0
- package/dist/collection/components/result-list/result-list.js +52 -5
- package/dist/collection/components/result-list/types.js +1 -0
- package/dist/collection/components/search-bar/dom.js +29 -0
- package/dist/collection/components/search-bar/lib.js +76 -15
- package/dist/collection/components/search-bar/search-bar.css +0 -16
- package/dist/collection/components/search-bar/search-bar.js +429 -320
- package/dist/collection/components/select/select.css +24 -0
- package/dist/collection/components/select/select.js +49 -2
- package/dist/collection/components/tab/tab.css +16 -0
- package/dist/collection/components/tab/tab.js +85 -0
- package/dist/collection/components/tab/util.js +3 -0
- package/dist/collection/components/tabs/tabs.css +67 -0
- package/dist/collection/components/tabs/tabs.js +159 -0
- package/dist/collection/components/text-field/text-field.js +1 -0
- package/dist/collection/components/tooltip/tooltip.js +62 -18
- package/dist/collection/types/icon.js +11 -0
- package/dist/collection/util/templates/element-pool.js +19 -1
- package/dist/components/components.css +1 -1
- package/dist/components/components.esm.js +1 -1
- package/dist/components/index.esm.js +1 -1
- package/dist/components/p-036a0be0.js +1 -0
- package/dist/components/{p-165aed7d.js → p-0d4a0d61.js} +1 -1
- package/dist/components/{p-9374ef6c.js → p-1367d3af.js} +1 -1
- package/dist/components/{p-103249b4.js → p-1971ed0b.js} +1 -1
- package/dist/components/p-1d08dd79.entry.js +1 -0
- package/dist/components/p-2ae8175d.entry.js +1 -0
- package/dist/components/p-2b4aedaa.entry.js +1 -0
- package/dist/components/p-3438c441.js +1 -0
- package/dist/components/p-3dd7a75f.entry.js +1 -0
- package/dist/components/p-406e73da.entry.js +1 -0
- package/dist/components/p-4327deea.js +1 -0
- package/dist/components/p-43b1b3f9.js +1 -0
- package/dist/components/p-49db6547.entry.js +1 -0
- package/dist/components/p-606596de.entry.js +1 -0
- package/dist/components/{p-ca52a423.js → p-63b48634.js} +1 -1
- package/dist/components/p-655053df.js +1 -0
- package/dist/components/p-69496858.js +1 -0
- package/dist/components/p-6a49c365.entry.js +1 -0
- package/dist/components/p-6b6c2260.js +1 -0
- package/dist/components/p-6b862967.js +1 -0
- package/dist/components/p-76b961b8.js +1 -0
- package/dist/components/p-8bbc344d.entry.js +1 -0
- package/dist/components/p-96f55673.js +1 -0
- package/dist/components/p-a0eac69c.entry.js +1 -0
- package/dist/components/p-bc2fbd68.entry.js +1 -0
- package/dist/components/p-c2706288.js +1 -0
- package/dist/components/p-d3fd9ca3.entry.js +1 -0
- package/dist/components/p-d539f530.js +1 -0
- package/dist/components/p-e35057b5.entry.js +1 -0
- package/dist/components/p-ee496965.entry.js +1 -0
- package/dist/components/p-ff7c70b9.js +1 -0
- package/dist/esm/{color-circle-picker-998a7e9c.js → color-circle-picker-e2a2cfb5.js} +1 -1
- package/dist/esm/color-picker-1d67effe.js +44 -0
- package/dist/esm/{color-circle-842f3321.js → color-swatch-0e62d13d.js} +42 -17
- package/dist/esm/components.js +1 -1
- package/dist/esm/{dialog-e3f49527.js → dialog-1cef715c.js} +1 -1
- package/dist/esm/dom-613e2677.js +10 -0
- package/dist/esm/{icon-d37150b4.js → icon-55b22de7.js} +1 -1
- package/dist/esm/{icon-button-aad3c0e7.js → icon-button-e6c72aec.js} +1 -1
- package/dist/esm/{icon-helper-83f10f73.js → icon-helper-67de1067.js} +60 -0
- package/dist/esm/index.js +17 -13
- package/dist/esm/lib-73fbca8b.js +7 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{popover-67c88e4b.js → popover-6e806354.js} +23 -1
- package/dist/esm/{result-list-36cfb08a.js → result-list-16c6afbd.js} +46 -2
- package/dist/esm/search-bar-8d18626e.js +525 -0
- package/dist/esm/{select-75ed5653.js → select-78aeff96.js} +27 -4
- package/dist/esm/tab-c76332b0.js +24 -0
- package/dist/esm/tabs-8e5353ba.js +109 -0
- package/dist/esm/{text-field-e542da25.js → text-field-32ac877e.js} +1 -0
- package/dist/esm/{tooltip-97c1b3ec.js → tooltip-29278ea4.js} +58 -22
- package/dist/esm/vertex-color-circle-picker.entry.js +1 -1
- package/dist/esm/vertex-color-picker.entry.js +2 -1
- package/dist/esm/vertex-color-swatch.entry.js +4 -0
- package/dist/esm/vertex-dialog.entry.js +1 -1
- package/dist/esm/vertex-icon-button.entry.js +2 -2
- package/dist/esm/vertex-icon.entry.js +2 -2
- package/dist/esm/vertex-popover.entry.js +1 -1
- package/dist/esm/vertex-result-list.entry.js +1 -1
- package/dist/esm/vertex-search-bar.entry.js +1 -1
- package/dist/esm/vertex-select.entry.js +1 -1
- package/dist/esm/vertex-tab.entry.js +3 -0
- package/dist/esm/vertex-tabs.entry.js +4 -0
- package/dist/esm/vertex-textfield.entry.js +1 -1
- package/dist/esm/vertex-tooltip.entry.js +2 -1
- package/dist/types/components/color-circle-picker/color-circle-picker.d.ts +7 -7
- package/dist/types/components/color-picker/color-picker.d.ts +19 -0
- package/dist/types/components/{color-circle/color-circle.d.ts → color-swatch/color-swatch.d.ts} +23 -5
- package/dist/types/components/color-swatch/lib.d.ts +1 -0
- package/dist/types/components/icon/icons/caution.d.ts +3 -0
- package/dist/types/components/icon/icons/compare.d.ts +3 -0
- package/dist/types/components/icon/icons/compress.d.ts +3 -0
- package/dist/types/components/icon/icons/cube-stack.d.ts +3 -0
- package/dist/types/components/icon/icons/expand.d.ts +3 -0
- package/dist/types/components/icon/icons/pin-text-square.d.ts +3 -0
- package/dist/types/components/icon/icons/plus-with-arrow.d.ts +3 -0
- package/dist/types/components/icon/icons/pmi.d.ts +3 -0
- package/dist/types/components/icon/icons/square-dot-outline.d.ts +3 -0
- package/dist/types/components/icon/icons/update.d.ts +3 -0
- package/dist/types/components/icon/icons/views.d.ts +3 -0
- package/dist/types/components/index.d.ts +3 -1
- package/dist/types/components/popover/popover.d.ts +7 -0
- package/dist/types/components/result-list/result-list.d.ts +6 -1
- package/dist/types/components/result-list/types.d.ts +4 -0
- package/dist/types/components/search-bar/dom.d.ts +8 -0
- package/dist/types/components/search-bar/lib.d.ts +31 -6
- package/dist/types/components/search-bar/search-bar.d.ts +125 -42
- package/dist/types/components/select/select.d.ts +8 -0
- package/dist/types/components/tab/tab.d.ts +11 -0
- package/dist/types/components/tab/util.d.ts +1 -0
- package/dist/types/components/tabs/tabs.d.ts +23 -0
- package/dist/types/components/tooltip/tooltip.d.ts +7 -0
- package/dist/types/components.d.ts +254 -96
- package/dist/types/types/icon.d.ts +11 -0
- package/dist/types/util/templates/element-pool.d.ts +10 -1
- package/package.json +4 -3
- package/dist/cjs/color-picker-876ace00.js +0 -37
- package/dist/cjs/search-bar-bb40cfa7.js +0 -290
- package/dist/collection/components/color-circle/color-circle.css +0 -18
- package/dist/components/p-03dbb28c.js +0 -1
- package/dist/components/p-0f8b9ede.entry.js +0 -1
- package/dist/components/p-19318fee.entry.js +0 -1
- package/dist/components/p-1d6cb015.entry.js +0 -1
- package/dist/components/p-209db2ba.entry.js +0 -1
- package/dist/components/p-20a74d5d.entry.js +0 -1
- package/dist/components/p-35e7ab78.entry.js +0 -1
- package/dist/components/p-4224c2ad.js +0 -1
- package/dist/components/p-52739247.js +0 -1
- package/dist/components/p-552c128f.js +0 -1
- package/dist/components/p-6505cdb3.js +0 -1
- package/dist/components/p-7dba2574.entry.js +0 -1
- package/dist/components/p-7f64b251.entry.js +0 -1
- package/dist/components/p-8434602f.js +0 -1
- package/dist/components/p-ae6a3c46.entry.js +0 -1
- package/dist/components/p-bd11e7d1.js +0 -1
- package/dist/components/p-d9b9aebe.js +0 -1
- package/dist/components/p-e576818b.entry.js +0 -1
- package/dist/components/p-ebabee40.entry.js +0 -1
- package/dist/components/p-f49a7ffd.js +0 -1
- package/dist/components/p-f71fc166.entry.js +0 -1
- package/dist/esm/color-picker-2e3b51fa.js +0 -35
- package/dist/esm/search-bar-59cc151d.js +0 -288
- package/dist/esm/vertex-color-circle.entry.js +0 -2
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { h } from '@stencil/core';
|
|
2
|
+
export const Update = () => (h("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 16 16", "data-testid": "update" }, h("path", { d: "M11.27 12.42A5.5 5.5 0 0 1 2.5 8H4L2 5 0 8h1.5A6.5 6.5 0 0 0 8 14.5a6.42 6.42 0 0 0 3.87-1.28.5.5 0 1 0-.6-.8ZM14.5 8A6.5 6.5 0 0 0 8 1.5a6.42 6.42 0 0 0-3.87 1.28.5.5 0 0 0 .6.8A5.5 5.5 0 0 1 13.5 8H12l2 3 2-3h-1.5Z" })));
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { h } from '@stencil/core';
|
|
2
|
+
export const Views = () => (h("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 16 16", "data-testid": "views" }, h("path", { d: "M12.49 5.97v-.03c0-.07-.02-.13-.05-.19a.27.27 0 0 0-.07-.08.284.284 0 0 0-.1-.09c-.02-.01-.02-.03-.04-.04L8.27 3.56a.508.508 0 0 0-.45 0L3.9 5.51c-.11.03-.21.11-.28.22l-.02.02-.01.02c-.03.07-.05.13-.05.2 0 .01-.01.02-.01.04v4.63c0 .19.11.36.28.45l4 1.99h.01a.465.465 0 0 0 .42 0h.01l3.97-1.96a.5.5 0 0 0 .28-.45L12.48 6l.01-.03ZM8.04 4.55l2.84 1.42-2.83 1.45-2.88-1.44 2.87-1.43ZM4.53 6.78l3 1.5v3.52l-3-1.5V6.77v.01Zm4.01 5.02V8.29l2.96-1.51v3.55L8.54 11.8ZM1.5 5c-.28 0-.5-.22-.5-.5V1h3.5c.28 0 .5.22.5.5s-.22.5-.5.5H2v2.5c0 .28-.22.5-.5.5Zm0 5.99c-.28 0-.5.22-.5.5v3.5h3.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5H2v-2.5c0-.28-.22-.5-.5-.5ZM14.5 5c.28 0 .5-.22.5-.5V1h-3.5c-.28 0-.5.22-.5.5s.22.5.5.5H14v2.5c0 .28.22.5.5.5Zm0 5.99c.28 0 .5.22.5.5v3.5h-3.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5H14v-2.5c0-.28.22-.5.5-.5Z" })));
|
|
@@ -50,7 +50,7 @@ export class IconButton {
|
|
|
50
50
|
"mutable": false,
|
|
51
51
|
"complexType": {
|
|
52
52
|
"original": "IconName",
|
|
53
|
-
"resolved": "\"help\" | \"open\" | \"info\" | \"copy\" | \"menu\" | \"ellipse\" | \"line\" | \"download\" | \"rotate\" | \"close\" | \"flip\" | \"reset\" | \"resize\" | \"search\" | \"caret-down\" | \"caret-up\" | \"adjustments\" | \"align-to-global\" | \"align-to-part\" | \"align-to-surface\" | \"align-view-to-plane\" | \"annotation\" | \"arrow-filled\" | \"arrow-line-left\" | \"arrow-line-right\" | \"arrow-partial\" | \"arrow-triangle-left\" | \"arrow-triangle-right\" | \"arrow-up-circled\" | \"attachment\" | \"axis-x\" | \"axis-y\" | \"axis-z\" | \"back\" | \"box-cursor\" | \"box-select\" | \"camera\" | \"caret-left\" | \"check\" | \"check-circle\" | \"caret-right\" | \"chevron-down\" | \"chevron-left\" | \"chevron-right\" | \"chevron-up\" | \"circle-outline\" | \"close-circle-fill\" | \"close-circle\" | \"collapse-all\" | \"columns\" | \"comment-add\" | \"comment-filled\" | \"comment-reopen\" | \"comment-resolve\" | \"comment-show\" | \"cross-section\" | \"cube-orthographic\" | \"cube-perspective\" | \"delete\" | \"drag-indicator\" | \"error-circle\" | \"expand-all\" | \"export\" | \"file\" | \"file-pdf\" | \"fit-all\" | \"fit-selected\" | \"folder-plus\" | \"forward\" | \"gear\" | \"invert\" | \"line-dot-left\" | \"line-dot-right\" | \"line-hash-left\" | \"line-hash-right\" | \"locate\" | \"markup\" | \"notification\" | \"open-window\" | \"pan\" | \"pencil\" | \"person-height\" | \"person-run\" | \"person-short\" | \"person-tall\" | \"person-walk\" | \"pin-fill\" | \"pin-line\" | \"pin-text\" | \"pin-text-fill\" | \"plus\" | \"precise-measurement\" | \"rabbit\" | \"ruler\" | \"show-only-nearby\" | \"snapshots\" | \"star\" | \"tape-measure\" | \"teleport-and-align\" | \"teleport-toward\" | \"teleport\" | \"turtle\" | \"version-history\" | \"visibility-hidden\" | \"visibility-partial\" | \"visibility-visible\" | \"zoom\"",
|
|
53
|
+
"resolved": "\"compare\" | \"help\" | \"open\" | \"expand\" | \"info\" | \"copy\" | \"menu\" | \"ellipse\" | \"line\" | \"download\" | \"rotate\" | \"close\" | \"flip\" | \"reset\" | \"resize\" | \"search\" | \"caret-down\" | \"caret-up\" | \"adjustments\" | \"align-to-global\" | \"align-to-part\" | \"align-to-surface\" | \"align-view-to-plane\" | \"annotation\" | \"arrow-filled\" | \"arrow-line-left\" | \"arrow-line-right\" | \"arrow-partial\" | \"arrow-triangle-left\" | \"arrow-triangle-right\" | \"arrow-up-circled\" | \"attachment\" | \"axis-x\" | \"axis-y\" | \"axis-z\" | \"back\" | \"box-cursor\" | \"box-select\" | \"camera\" | \"caret-left\" | \"caution\" | \"check\" | \"check-circle\" | \"caret-right\" | \"chevron-down\" | \"chevron-left\" | \"chevron-right\" | \"chevron-up\" | \"circle-outline\" | \"close-circle-fill\" | \"close-circle\" | \"collapse-all\" | \"columns\" | \"comment-add\" | \"comment-filled\" | \"comment-reopen\" | \"comment-resolve\" | \"comment-show\" | \"compress\" | \"cross-section\" | \"cube-orthographic\" | \"cube-perspective\" | \"cube-stack\" | \"delete\" | \"drag-indicator\" | \"error-circle\" | \"expand-all\" | \"export\" | \"file\" | \"file-pdf\" | \"fit-all\" | \"fit-selected\" | \"folder-plus\" | \"forward\" | \"gear\" | \"invert\" | \"line-dot-left\" | \"line-dot-right\" | \"line-hash-left\" | \"line-hash-right\" | \"locate\" | \"markup\" | \"notification\" | \"open-window\" | \"pan\" | \"pencil\" | \"person-height\" | \"person-run\" | \"person-short\" | \"person-tall\" | \"person-walk\" | \"pin-fill\" | \"pin-line\" | \"pin-text\" | \"pin-text-fill\" | \"pin-text-square\" | \"plus\" | \"plus-with-arrow\" | \"pmi\" | \"precise-measurement\" | \"rabbit\" | \"ruler\" | \"show-only-nearby\" | \"snapshots\" | \"star\" | \"square-dot-outline\" | \"tape-measure\" | \"teleport-and-align\" | \"teleport-toward\" | \"teleport\" | \"turtle\" | \"update\" | \"version-history\" | \"views\" | \"visibility-hidden\" | \"visibility-partial\" | \"visibility-visible\" | \"zoom\"",
|
|
54
54
|
"references": {
|
|
55
55
|
"IconName": {
|
|
56
56
|
"location": "import",
|
|
@@ -8,9 +8,9 @@ export * from './card-group/card-group';
|
|
|
8
8
|
export * from './chip/chip';
|
|
9
9
|
export * from './click-to-edit-text-field/click-to-edit-text-field';
|
|
10
10
|
export * from './collapsible/collapsible';
|
|
11
|
-
export * from './color-circle/color-circle';
|
|
12
11
|
export * from './color-circle-picker/color-circle-picker';
|
|
13
12
|
export * from './color-picker/color-picker';
|
|
13
|
+
export * from './color-swatch/color-swatch';
|
|
14
14
|
export * from './context-menu/context-menu';
|
|
15
15
|
export * from './dialog/dialog';
|
|
16
16
|
export * from './draggable-popover/draggable-popover';
|
|
@@ -32,6 +32,8 @@ export * from './search-bar/search-bar';
|
|
|
32
32
|
export * from './select/select';
|
|
33
33
|
export * from './slider/slider';
|
|
34
34
|
export * from './spinner/spinner';
|
|
35
|
+
export * from './tab/tab';
|
|
36
|
+
export * from './tabs/tabs';
|
|
35
37
|
export * from './text-field/text-field';
|
|
36
38
|
export * from './toast/toast';
|
|
37
39
|
export * from './toggle/toggle';
|
|
@@ -182,7 +182,7 @@ export class Menu {
|
|
|
182
182
|
"mutable": false,
|
|
183
183
|
"complexType": {
|
|
184
184
|
"original": "Partial<Popover>",
|
|
185
|
-
"resolved": "undefined | ({ open?: boolean | undefined; placement?: Placement | undefined; position?: string | Point | undefined; anchorBounds?: Pick<DOMRect, \"height\" | \"width\" | \"x\" | \"y\"> | undefined; backdrop?: boolean | undefined; animated?: boolean | undefined; anchorSelector?: string | undefined; boundarySelector?: string | undefined; resizeBehavior?: PopoverResizeBehavior | undefined; overflowBehavior?: { rootBoundary?: RootBoundary | undefined; elementContext?: ElementContext | undefined; altBoundary?: boolean | undefined; padding?: Padding | undefined; boundary?: Boundary | undefined; } | undefined; flipBehavior?: { rootBoundary?: RootBoundary | undefined; elementContext?: ElementContext | undefined; altBoundary?: boolean | undefined; padding?: Padding | undefined; crossAxis?: boolean | undefined; mainAxis?: boolean | undefined; fallbackPlacements?: Placement[] | undefined; fallbackStrategy?: \"bestFit\" | \"initialPlacement\" | undefined; fallbackAxisSideDirection?: \"none\" | \"start\" | \"end\" | undefined; flipAlignment?: boolean | undefined; boundary?: Boundary | undefined; } | undefined; offsetBehavior?: OffsetOptions | undefined; updateOnResize?: boolean | undefined; dismissed?: EventEmitter<void> | undefined; connectedCallback?: (() => void) | undefined; componentDidUpdate?: (() => void) | undefined; componentDidLoad?: (() => void) | undefined; disconnectedCallback?: (() => void) | undefined; updatePosition?: ((position?: string | Point | undefined) => void) | undefined; updatePlacement?: (() => void) | undefined; updateOpened?: ((open?: boolean | undefined) => void) | undefined; updateAnimated?: (() => void) | undefined; updateMiddleware?: (() => void) | undefined; setWindow?: ((partialWindow: Pick<Window, \"innerHeight\" | \"innerWidth\">) => void) | undefined; render?: (() => IntrinsicElements) | undefined; })",
|
|
185
|
+
"resolved": "undefined | ({ open?: boolean | undefined; placement?: Placement | undefined; position?: string | Point | undefined; anchorBounds?: Pick<DOMRect, \"height\" | \"width\" | \"x\" | \"y\"> | undefined; backdrop?: boolean | undefined; animated?: boolean | undefined; anchorSelector?: string | undefined; boundarySelector?: string | undefined; resizeBehavior?: PopoverResizeBehavior | undefined; overflowBehavior?: { rootBoundary?: RootBoundary | undefined; elementContext?: ElementContext | undefined; altBoundary?: boolean | undefined; padding?: Padding | undefined; boundary?: Boundary | undefined; } | undefined; flipBehavior?: { rootBoundary?: RootBoundary | undefined; elementContext?: ElementContext | undefined; altBoundary?: boolean | undefined; padding?: Padding | undefined; crossAxis?: boolean | undefined; mainAxis?: boolean | undefined; fallbackPlacements?: Placement[] | undefined; fallbackStrategy?: \"bestFit\" | \"initialPlacement\" | undefined; fallbackAxisSideDirection?: \"none\" | \"start\" | \"end\" | undefined; flipAlignment?: boolean | undefined; boundary?: Boundary | undefined; } | undefined; offsetBehavior?: OffsetOptions | undefined; updateOnResize?: boolean | undefined; dismissed?: EventEmitter<void> | undefined; resizeObserverFactory?: ((cb: (entries: ResizeObserverEntry[]) => void) => ResizeObserver) | undefined; connectedCallback?: (() => void) | undefined; componentDidUpdate?: (() => void) | undefined; componentDidLoad?: (() => void) | undefined; disconnectedCallback?: (() => void) | undefined; updatePosition?: ((position?: string | Point | undefined) => void) | undefined; updatePlacement?: (() => void) | undefined; updateOpened?: ((open?: boolean | undefined) => void) | undefined; updateAnimated?: (() => void) | undefined; updateMiddleware?: (() => void) | undefined; updateResizeObserver?: (() => void) | undefined; setWindow?: ((partialWindow: Pick<Window, \"innerHeight\" | \"innerWidth\">) => void) | undefined; render?: (() => IntrinsicElements) | undefined; })",
|
|
186
186
|
"references": {
|
|
187
187
|
"Partial": {
|
|
188
188
|
"location": "global"
|
|
@@ -24,13 +24,17 @@ export class Popover {
|
|
|
24
24
|
this.updateOnResize = false;
|
|
25
25
|
this.opened = false;
|
|
26
26
|
this.computedPlacement = this.placement;
|
|
27
|
+
this.resizeObserverFactory = (cb) => new ResizeObserver(cb);
|
|
27
28
|
this.updateListener = this.updateListener.bind(this);
|
|
28
29
|
this.handlePositionUpdate = this.handlePositionUpdate.bind(this);
|
|
29
30
|
this.handleResize = this.handleResize.bind(this);
|
|
31
|
+
this.handleMiddlewareChange = this.handleMiddlewareChange.bind(this);
|
|
30
32
|
this.setWindow = this.setWindow.bind(this);
|
|
33
|
+
this.updateResizeObserver = this.updateResizeObserver.bind(this);
|
|
31
34
|
}
|
|
32
35
|
connectedCallback() {
|
|
33
36
|
this.updatePosition(this.position);
|
|
37
|
+
this.updateResizeObserver();
|
|
34
38
|
}
|
|
35
39
|
componentDidUpdate() {
|
|
36
40
|
if (this.shouldUpdatePosition) {
|
|
@@ -52,12 +56,14 @@ export class Popover {
|
|
|
52
56
|
}
|
|
53
57
|
}
|
|
54
58
|
disconnectedCallback() {
|
|
59
|
+
var _a;
|
|
55
60
|
this.viewportWidth = undefined;
|
|
56
61
|
this.viewportHeight = undefined;
|
|
57
62
|
this.opened = false;
|
|
58
63
|
if (this.resizeBehavior === 'dynamic') {
|
|
59
64
|
window.removeEventListener('resize', this.handleResize);
|
|
60
65
|
}
|
|
66
|
+
(_a = this.boundaryResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
61
67
|
}
|
|
62
68
|
updatePosition(position) {
|
|
63
69
|
if (position != null) {
|
|
@@ -81,6 +87,16 @@ export class Popover {
|
|
|
81
87
|
updateMiddleware() {
|
|
82
88
|
this.handleMiddlewareChange();
|
|
83
89
|
}
|
|
90
|
+
updateResizeObserver() {
|
|
91
|
+
const observer = this.getOrCreateResizeObserver();
|
|
92
|
+
observer.disconnect();
|
|
93
|
+
if (this.boundarySelector != null) {
|
|
94
|
+
const element = document.querySelector(this.boundarySelector);
|
|
95
|
+
if (element != null) {
|
|
96
|
+
observer.observe(element);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
84
100
|
/**
|
|
85
101
|
* @private Used for internals or testing.
|
|
86
102
|
*/
|
|
@@ -186,6 +202,12 @@ export class Popover {
|
|
|
186
202
|
this.viewportWidth = this.partialWindow.innerWidth;
|
|
187
203
|
this.viewportHeight = this.partialWindow.innerHeight;
|
|
188
204
|
}
|
|
205
|
+
getOrCreateResizeObserver() {
|
|
206
|
+
if (this.boundaryResizeObserver == null) {
|
|
207
|
+
this.boundaryResizeObserver = this.resizeObserverFactory(this.handleMiddlewareChange);
|
|
208
|
+
}
|
|
209
|
+
return this.boundaryResizeObserver;
|
|
210
|
+
}
|
|
189
211
|
getTransformClass() {
|
|
190
212
|
if (this.animated) {
|
|
191
213
|
switch (this.computedPlacement) {
|
|
@@ -485,6 +507,32 @@ export class Popover {
|
|
|
485
507
|
"attribute": "update-on-resize",
|
|
486
508
|
"reflect": false,
|
|
487
509
|
"defaultValue": "false"
|
|
510
|
+
},
|
|
511
|
+
"resizeObserverFactory": {
|
|
512
|
+
"type": "unknown",
|
|
513
|
+
"mutable": false,
|
|
514
|
+
"complexType": {
|
|
515
|
+
"original": "(\n cb: (entries: ResizeObserverEntry[]) => void\n ) => ResizeObserver",
|
|
516
|
+
"resolved": "(cb: (entries: ResizeObserverEntry[]) => void) => ResizeObserver",
|
|
517
|
+
"references": {
|
|
518
|
+
"ResizeObserverEntry": {
|
|
519
|
+
"location": "global"
|
|
520
|
+
},
|
|
521
|
+
"ResizeObserver": {
|
|
522
|
+
"location": "global"
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
},
|
|
526
|
+
"required": false,
|
|
527
|
+
"optional": false,
|
|
528
|
+
"docs": {
|
|
529
|
+
"tags": [{
|
|
530
|
+
"name": "internal",
|
|
531
|
+
"text": undefined
|
|
532
|
+
}],
|
|
533
|
+
"text": ""
|
|
534
|
+
},
|
|
535
|
+
"defaultValue": "(cb) => new ResizeObserver(cb)"
|
|
488
536
|
}
|
|
489
537
|
};
|
|
490
538
|
}
|
|
@@ -538,6 +586,9 @@ export class Popover {
|
|
|
538
586
|
}, {
|
|
539
587
|
"propName": "offsetBehavior",
|
|
540
588
|
"methodName": "updateMiddleware"
|
|
589
|
+
}, {
|
|
590
|
+
"propName": "boundarySelector",
|
|
591
|
+
"methodName": "updateResizeObserver"
|
|
541
592
|
}];
|
|
542
593
|
}
|
|
543
594
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { h, Host, } from '@stencil/core';
|
|
2
2
|
import classNames from 'classnames';
|
|
3
|
-
import { ElementPool } from '../../util/templates/element-pool';
|
|
3
|
+
import { ElementPool, } from '../../util/templates/element-pool';
|
|
4
4
|
import { generateInstanceFromTemplate, } from '../../util/templates/templates';
|
|
5
5
|
import { getResultListHeight, scrollToResult } from './lib';
|
|
6
6
|
export class ResultList {
|
|
@@ -29,7 +29,7 @@ export class ResultList {
|
|
|
29
29
|
}
|
|
30
30
|
};
|
|
31
31
|
this.createResultPool = () => {
|
|
32
|
-
this.stateMap.resultPool = new ElementPool(this.hostEl, () => this.createResultInstance());
|
|
32
|
+
this.stateMap.resultPool = new ElementPool(this.hostEl, () => this.createResultInstance(), () => this.createResultHandlers());
|
|
33
33
|
};
|
|
34
34
|
this.createResultInstance = () => {
|
|
35
35
|
if (this.stateMap.resultTemplate != null) {
|
|
@@ -41,6 +41,18 @@ export class ResultList {
|
|
|
41
41
|
throw new Error('Result template not defined.');
|
|
42
42
|
}
|
|
43
43
|
};
|
|
44
|
+
this.createResultHandlers = () => {
|
|
45
|
+
return [
|
|
46
|
+
{
|
|
47
|
+
type: 'pointerdown',
|
|
48
|
+
handler: this.handlePointerDown,
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
type: 'click',
|
|
52
|
+
handler: this.handleResultClick,
|
|
53
|
+
},
|
|
54
|
+
];
|
|
55
|
+
};
|
|
44
56
|
this.layoutResults = () => {
|
|
45
57
|
var _a, _b, _c, _d;
|
|
46
58
|
const visibleRowCount = this.viewportEndIndex - this.viewportStartIndex + 1;
|
|
@@ -61,6 +73,7 @@ export class ResultList {
|
|
|
61
73
|
el.style.top = `${(this.viewportStartIndex + index) * this.resultHeight}px`;
|
|
62
74
|
el.style.width = '100%';
|
|
63
75
|
el.setAttribute('is-focused', `${this.viewportStartIndex + index === this.lastFocusedIndex}`);
|
|
76
|
+
el.setAttribute('data-result-id', result.id);
|
|
64
77
|
binding.bind(result);
|
|
65
78
|
}
|
|
66
79
|
});
|
|
@@ -103,6 +116,8 @@ export class ResultList {
|
|
|
103
116
|
this.lastStartIndex = 0;
|
|
104
117
|
this.lastFocusedIndex = 0;
|
|
105
118
|
this.stateMap = {};
|
|
119
|
+
this.handleResultClick = this.handleResultClick.bind(this);
|
|
120
|
+
this.handlePointerDown = this.handlePointerDown.bind(this);
|
|
106
121
|
}
|
|
107
122
|
handleResultsChanged(results) {
|
|
108
123
|
if (typeof results === 'string') {
|
|
@@ -148,6 +163,16 @@ export class ResultList {
|
|
|
148
163
|
height: `${this.parsedResults.length * this.resultHeight}px`,
|
|
149
164
|
} }, h("slot", null), h("slot", { name: "result" })))))));
|
|
150
165
|
}
|
|
166
|
+
handlePointerDown(event) {
|
|
167
|
+
event.preventDefault();
|
|
168
|
+
}
|
|
169
|
+
handleResultClick(event) {
|
|
170
|
+
const closestIdElement = event.target.closest('[data-result-id]');
|
|
171
|
+
const result = this.parsedResults.find((r) => r.id === (closestIdElement === null || closestIdElement === void 0 ? void 0 : closestIdElement.getAttribute('data-result-id')));
|
|
172
|
+
if (result != null) {
|
|
173
|
+
this.resultClick.emit(result);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
151
176
|
computeViewportResults() {
|
|
152
177
|
const viewportHeight = this.getListHeight();
|
|
153
178
|
if (viewportHeight != null && this.resultHeight > 0) {
|
|
@@ -188,7 +213,8 @@ export class ResultList {
|
|
|
188
213
|
"resolved": "Result[]",
|
|
189
214
|
"references": {
|
|
190
215
|
"Result": {
|
|
191
|
-
"location": "
|
|
216
|
+
"location": "import",
|
|
217
|
+
"path": "./types"
|
|
192
218
|
}
|
|
193
219
|
}
|
|
194
220
|
},
|
|
@@ -377,10 +403,31 @@ export class ResultList {
|
|
|
377
403
|
},
|
|
378
404
|
"complexType": {
|
|
379
405
|
"original": "Result",
|
|
380
|
-
"resolved": "{
|
|
406
|
+
"resolved": "{ id: string; type: string; } & Record<string, unknown>",
|
|
407
|
+
"references": {
|
|
408
|
+
"Result": {
|
|
409
|
+
"location": "import",
|
|
410
|
+
"path": "./types"
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
}, {
|
|
415
|
+
"method": "resultClick",
|
|
416
|
+
"name": "resultClick",
|
|
417
|
+
"bubbles": true,
|
|
418
|
+
"cancelable": true,
|
|
419
|
+
"composed": true,
|
|
420
|
+
"docs": {
|
|
421
|
+
"tags": [],
|
|
422
|
+
"text": ""
|
|
423
|
+
},
|
|
424
|
+
"complexType": {
|
|
425
|
+
"original": "Result",
|
|
426
|
+
"resolved": "{ id: string; type: string; } & Record<string, unknown>",
|
|
381
427
|
"references": {
|
|
382
428
|
"Result": {
|
|
383
|
-
"location": "
|
|
429
|
+
"location": "import",
|
|
430
|
+
"path": "./types"
|
|
384
431
|
}
|
|
385
432
|
}
|
|
386
433
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export const getWindowSelection = () => {
|
|
2
|
+
if (typeof window !== 'undefined') {
|
|
3
|
+
return window.getSelection();
|
|
4
|
+
}
|
|
5
|
+
return undefined;
|
|
6
|
+
};
|
|
7
|
+
export const nodeHasChildNodes = (node) => {
|
|
8
|
+
return node.hasChildNodes();
|
|
9
|
+
};
|
|
10
|
+
export const createDocumentRange = () => {
|
|
11
|
+
return document.createRange();
|
|
12
|
+
};
|
|
13
|
+
export const createTextNode = (text) => {
|
|
14
|
+
return new Text(text);
|
|
15
|
+
};
|
|
16
|
+
export const createBreak = () => {
|
|
17
|
+
return document.createElement('br');
|
|
18
|
+
};
|
|
19
|
+
export const createWrappingDiv = (nodes) => {
|
|
20
|
+
const el = document.createElement('div');
|
|
21
|
+
el.append(...nodes);
|
|
22
|
+
return el;
|
|
23
|
+
};
|
|
24
|
+
export const isHtmlElement = (node) => {
|
|
25
|
+
return node instanceof HTMLElement;
|
|
26
|
+
};
|
|
27
|
+
export const isBrElement = (node) => {
|
|
28
|
+
return node instanceof HTMLBRElement;
|
|
29
|
+
};
|
|
@@ -1,21 +1,82 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
}
|
|
5
|
-
return undefined;
|
|
1
|
+
import { createBreak, createTextNode } from './dom';
|
|
2
|
+
export const createResultUri = (result) => {
|
|
3
|
+
return `${result.type}:${result.id}`;
|
|
6
4
|
};
|
|
7
|
-
export const
|
|
8
|
-
|
|
5
|
+
export const createSearchResultReplacement = (result, before, after) => {
|
|
6
|
+
const urn = createResultUri(result);
|
|
7
|
+
return {
|
|
8
|
+
before: createTextNode(before),
|
|
9
|
+
beforeSpace: createTextNode(createHairSpace()),
|
|
10
|
+
result: createTextNode(urn),
|
|
11
|
+
afterSpace: after != null
|
|
12
|
+
? createTextNode(createNoBreakSpace())
|
|
13
|
+
: createTextNode(createHairSpace()),
|
|
14
|
+
after: after != null ? createTextNode(after) : undefined,
|
|
15
|
+
};
|
|
9
16
|
};
|
|
10
|
-
|
|
11
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Newline characters and spaces are represented slightly differently within a
|
|
19
|
+
* content editable element between browsers. This method standardizes the
|
|
20
|
+
* representation of those characters to avoid having to write branching logic
|
|
21
|
+
* to support each individual browser.
|
|
22
|
+
*/
|
|
23
|
+
export const standardizeNewlinesAndSpaces = (node) => {
|
|
24
|
+
const content = node.textContent;
|
|
25
|
+
if (content === '\n') {
|
|
26
|
+
return [createBreak()];
|
|
27
|
+
}
|
|
28
|
+
else if (content != null && content.includes('\n')) {
|
|
29
|
+
const split = content.split('\n');
|
|
30
|
+
return split.reduce((res, substr, i) => {
|
|
31
|
+
const previous = split[i - 1];
|
|
32
|
+
// Ignore the empty string if the prior element was converted
|
|
33
|
+
// to a breaking element to prevent duplication of newlines.
|
|
34
|
+
if (substr === '' && previous !== '') {
|
|
35
|
+
return res;
|
|
36
|
+
}
|
|
37
|
+
return [
|
|
38
|
+
...res,
|
|
39
|
+
// Standard spaces are not always respected with in `Text`
|
|
40
|
+
// elements when appended to a contenteditable element. This
|
|
41
|
+
// conversion preserves that spacing.
|
|
42
|
+
createTextNode(substr.replace(/ /g, createNoBreakSpace())),
|
|
43
|
+
createBreak(),
|
|
44
|
+
];
|
|
45
|
+
}, []);
|
|
46
|
+
}
|
|
47
|
+
return [node];
|
|
48
|
+
};
|
|
49
|
+
export const getNodesForSearchResultReplacement = (replacement, isBreaking = false) => {
|
|
50
|
+
const keys = Object.keys(replacement);
|
|
51
|
+
const replacementElements = keys
|
|
52
|
+
.map((key) => replacement[key])
|
|
53
|
+
.filter((node) => node != null);
|
|
54
|
+
// If the element is intended to replace a breaking element such
|
|
55
|
+
// as a `<div>` wrapper, a newline is required alongside the standard
|
|
56
|
+
// replacement elements.
|
|
57
|
+
if (isBreaking) {
|
|
58
|
+
return [createTextNode('\n'), ...replacementElements];
|
|
59
|
+
}
|
|
60
|
+
return replacementElements;
|
|
12
61
|
};
|
|
13
|
-
|
|
14
|
-
|
|
62
|
+
/**
|
|
63
|
+
* We leverage a couple unique spaces to represent mentions, allowing for
|
|
64
|
+
* correct cursor movement when using arrow keys. As these characters are
|
|
65
|
+
* purely for functional behavior of the input, `trimNonstandardSpaces`
|
|
66
|
+
* will remove them so the input is suitable for emitting.
|
|
67
|
+
*
|
|
68
|
+
* U+200A is a "Hair Space" which acts as a space, but is not visually
|
|
69
|
+
* represented as one.
|
|
70
|
+
*
|
|
71
|
+
* U+00A0 is a "No-Break Space" which is commonly added by browsers
|
|
72
|
+
* when interacting with a contenteditable element.
|
|
73
|
+
*/
|
|
74
|
+
export const trimNonstandardSpaces = (text) => {
|
|
75
|
+
return text.replace(/[\u200A]/g, '').replace(/[\u00A0]/g, ' ');
|
|
15
76
|
};
|
|
16
|
-
|
|
17
|
-
return
|
|
77
|
+
const createHairSpace = () => {
|
|
78
|
+
return String.fromCharCode(8202);
|
|
18
79
|
};
|
|
19
|
-
|
|
20
|
-
return
|
|
80
|
+
const createNoBreakSpace = () => {
|
|
81
|
+
return String.fromCharCode(160);
|
|
21
82
|
};
|
|
@@ -11,15 +11,6 @@
|
|
|
11
11
|
line-height: 1.4;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
.test-mention {
|
|
15
|
-
display: inline-block;
|
|
16
|
-
color: blue;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
.hidden {
|
|
20
|
-
visibility: hidden;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
14
|
.content-input {
|
|
24
15
|
width: 100%;
|
|
25
16
|
box-sizing: border-box;
|
|
@@ -33,13 +24,6 @@
|
|
|
33
24
|
white-space: pre-line;
|
|
34
25
|
}
|
|
35
26
|
|
|
36
|
-
.textarea {
|
|
37
|
-
overflow: hidden;
|
|
38
|
-
outline: none;
|
|
39
|
-
box-shadow: none;
|
|
40
|
-
resize: none;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
27
|
.content-input:focus {
|
|
44
28
|
outline: none;
|
|
45
29
|
}
|