@rulecms/source-components-angular 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 +9 -0
- package/README.md +117 -0
- package/THIRD_PARTY_NOTICES +50 -0
- package/fesm2022/rulecms-source-components-angular-icon-registry.mjs +144 -0
- package/fesm2022/rulecms-source-components-angular-icon-registry.mjs.map +1 -0
- package/fesm2022/rulecms-source-components-angular.mjs +3979 -0
- package/fesm2022/rulecms-source-components-angular.mjs.map +1 -0
- package/icon-registry/icon-aliases.d.ts +10 -0
- package/icon-registry/icon-aliases.d.ts.map +1 -0
- package/icon-registry/index.d.ts +6 -0
- package/icon-registry/index.d.ts.map +1 -0
- package/icon-registry/resolve-icon-name.d.ts +6 -0
- package/icon-registry/resolve-icon-name.d.ts.map +1 -0
- package/icon-registry/resolve-icon-node.d.ts +25 -0
- package/icon-registry/resolve-icon-node.d.ts.map +1 -0
- package/icon-registry/rulecms-source-components-angular-icon-registry.d.ts.map +1 -0
- package/icon-registry/search-icon-names.d.ts +11 -0
- package/icon-registry/search-icon-names.d.ts.map +1 -0
- package/index.d.ts +6 -0
- package/lib/base-components/display/card-entries/card-entries.d.ts +3 -0
- package/lib/base-components/display/card-entries/card-entries.d.ts.map +1 -0
- package/lib/base-components/display/card-groups.d.ts +3 -0
- package/lib/base-components/display/card-groups.d.ts.map +1 -0
- package/lib/base-components/display/component-attributes/attribute-list-for-component-types.d.ts +20 -0
- package/lib/base-components/display/component-attributes/attribute-list-for-component-types.d.ts.map +1 -0
- package/lib/base-components/display/component-attributes/component-name-to-modify-attribute.d.ts +12 -0
- package/lib/base-components/display/component-attributes/component-name-to-modify-attribute.d.ts.map +1 -0
- package/lib/base-components/display/components/cloudinary-advanced-image/attribute-edit-mode-configs.d.ts +3 -0
- package/lib/base-components/display/components/cloudinary-advanced-image/attribute-edit-mode-configs.d.ts.map +1 -0
- package/lib/base-components/display/components/cloudinary-advanced-image/build-cloudinary-image-urls.d.ts +7 -0
- package/lib/base-components/display/components/cloudinary-advanced-image/build-cloudinary-image-urls.d.ts.map +1 -0
- package/lib/base-components/display/components/cloudinary-advanced-image/cloudinary-advanced-image.component.d.ts +28 -0
- package/lib/base-components/display/components/cloudinary-advanced-image/cloudinary-advanced-image.component.d.ts.map +1 -0
- package/lib/base-components/display/components/cloudinary-advanced-image/default-attribute-values.d.ts +3 -0
- package/lib/base-components/display/components/cloudinary-advanced-image/default-attribute-values.d.ts.map +1 -0
- package/lib/base-components/display/components/cloudinary-advanced-image/display-card-entry.d.ts +3 -0
- package/lib/base-components/display/components/cloudinary-advanced-image/display-card-entry.d.ts.map +1 -0
- package/lib/base-components/display/components/cloudinary-advanced-image/resolve-no-container.d.ts +8 -0
- package/lib/base-components/display/components/cloudinary-advanced-image/resolve-no-container.d.ts.map +1 -0
- package/lib/base-components/display/components/cloudinary-advanced-image/resolve-renders-own-element.d.ts +6 -0
- package/lib/base-components/display/components/cloudinary-advanced-image/resolve-renders-own-element.d.ts.map +1 -0
- package/lib/base-components/display/components/r-accordion/accordion-attributes.d.ts +109 -0
- package/lib/base-components/display/components/r-accordion/accordion-attributes.d.ts.map +1 -0
- package/lib/base-components/display/components/r-accordion/attribute-edit-mode-configs.d.ts +16 -0
- package/lib/base-components/display/components/r-accordion/attribute-edit-mode-configs.d.ts.map +1 -0
- package/lib/base-components/display/components/r-accordion/default-attribute-values.d.ts +3 -0
- package/lib/base-components/display/components/r-accordion/default-attribute-values.d.ts.map +1 -0
- package/lib/base-components/display/components/r-accordion/display-card-entry.d.ts +3 -0
- package/lib/base-components/display/components/r-accordion/display-card-entry.d.ts.map +1 -0
- package/lib/base-components/display/components/r-accordion/r-accordion.component.d.ts +27 -0
- package/lib/base-components/display/components/r-accordion/r-accordion.component.d.ts.map +1 -0
- package/lib/base-components/display/components/r-accordion/resolve-no-container.d.ts +8 -0
- package/lib/base-components/display/components/r-accordion/resolve-no-container.d.ts.map +1 -0
- package/lib/base-components/display/components/r-accordion/resolve-renders-own-element.d.ts +6 -0
- package/lib/base-components/display/components/r-accordion/resolve-renders-own-element.d.ts.map +1 -0
- package/lib/base-components/display/components/r-button/attribute-edit-mode-configs.d.ts +12 -0
- package/lib/base-components/display/components/r-button/attribute-edit-mode-configs.d.ts.map +1 -0
- package/lib/base-components/display/components/r-button/button-attributes.d.ts +51 -0
- package/lib/base-components/display/components/r-button/button-attributes.d.ts.map +1 -0
- package/lib/base-components/display/components/r-button/button-css-variables.d.ts +28 -0
- package/lib/base-components/display/components/r-button/button-css-variables.d.ts.map +1 -0
- package/lib/base-components/display/components/r-button/button-instance-props.d.ts +23 -0
- package/lib/base-components/display/components/r-button/button-instance-props.d.ts.map +1 -0
- package/lib/base-components/display/components/r-button/button-preset-styles.d.ts +13 -0
- package/lib/base-components/display/components/r-button/button-preset-styles.d.ts.map +1 -0
- package/lib/base-components/display/components/r-button/button-presets.d.ts +76 -0
- package/lib/base-components/display/components/r-button/button-presets.d.ts.map +1 -0
- package/lib/base-components/display/components/r-button/default-attribute-values.d.ts +14 -0
- package/lib/base-components/display/components/r-button/default-attribute-values.d.ts.map +1 -0
- package/lib/base-components/display/components/r-button/display-card-entry.d.ts +3 -0
- package/lib/base-components/display/components/r-button/display-card-entry.d.ts.map +1 -0
- package/lib/base-components/display/components/r-button/r-button.component.d.ts +26 -0
- package/lib/base-components/display/components/r-button/r-button.component.d.ts.map +1 -0
- package/lib/base-components/display/components/r-button/resolve-button-preset.d.ts +11 -0
- package/lib/base-components/display/components/r-button/resolve-button-preset.d.ts.map +1 -0
- package/lib/base-components/display/components/r-button/resolve-no-container.d.ts +8 -0
- package/lib/base-components/display/components/r-button/resolve-no-container.d.ts.map +1 -0
- package/lib/base-components/display/components/r-button/resolve-renders-own-element.d.ts +6 -0
- package/lib/base-components/display/components/r-button/resolve-renders-own-element.d.ts.map +1 -0
- package/lib/base-components/display/components/r-divider/attribute-edit-mode-configs.d.ts +10 -0
- package/lib/base-components/display/components/r-divider/attribute-edit-mode-configs.d.ts.map +1 -0
- package/lib/base-components/display/components/r-divider/default-attribute-values.d.ts +11 -0
- package/lib/base-components/display/components/r-divider/default-attribute-values.d.ts.map +1 -0
- package/lib/base-components/display/components/r-divider/display-card-entry.d.ts +3 -0
- package/lib/base-components/display/components/r-divider/display-card-entry.d.ts.map +1 -0
- package/lib/base-components/display/components/r-divider/divider-attributes.d.ts +41 -0
- package/lib/base-components/display/components/r-divider/divider-attributes.d.ts.map +1 -0
- package/lib/base-components/display/components/r-divider/divider-styles.d.ts +14 -0
- package/lib/base-components/display/components/r-divider/divider-styles.d.ts.map +1 -0
- package/lib/base-components/display/components/r-divider/r-divider.component.d.ts +16 -0
- package/lib/base-components/display/components/r-divider/r-divider.component.d.ts.map +1 -0
- package/lib/base-components/display/components/r-divider/resolve-no-container.d.ts +7 -0
- package/lib/base-components/display/components/r-divider/resolve-no-container.d.ts.map +1 -0
- package/lib/base-components/display/components/r-divider/resolve-renders-own-element.d.ts +6 -0
- package/lib/base-components/display/components/r-divider/resolve-renders-own-element.d.ts.map +1 -0
- package/lib/base-components/display/components/r-embed/attribute-edit-mode-configs.d.ts +8 -0
- package/lib/base-components/display/components/r-embed/attribute-edit-mode-configs.d.ts.map +1 -0
- package/lib/base-components/display/components/r-embed/default-attribute-values.d.ts +14 -0
- package/lib/base-components/display/components/r-embed/default-attribute-values.d.ts.map +1 -0
- package/lib/base-components/display/components/r-embed/display-card-entry.d.ts +3 -0
- package/lib/base-components/display/components/r-embed/display-card-entry.d.ts.map +1 -0
- package/lib/base-components/display/components/r-embed/embed-attributes.d.ts +71 -0
- package/lib/base-components/display/components/r-embed/embed-attributes.d.ts.map +1 -0
- package/lib/base-components/display/components/r-embed/embed-providers.d.ts +78 -0
- package/lib/base-components/display/components/r-embed/embed-providers.d.ts.map +1 -0
- package/lib/base-components/display/components/r-embed/r-embed.component.d.ts +21 -0
- package/lib/base-components/display/components/r-embed/r-embed.component.d.ts.map +1 -0
- package/lib/base-components/display/components/r-embed/resolve-embed.d.ts +41 -0
- package/lib/base-components/display/components/r-embed/resolve-embed.d.ts.map +1 -0
- package/lib/base-components/display/components/r-embed/resolve-no-container.d.ts +13 -0
- package/lib/base-components/display/components/r-embed/resolve-no-container.d.ts.map +1 -0
- package/lib/base-components/display/components/r-embed/resolve-renders-own-element.d.ts +9 -0
- package/lib/base-components/display/components/r-embed/resolve-renders-own-element.d.ts.map +1 -0
- package/lib/base-components/display/components/r-icon/attribute-edit-mode-configs.d.ts +3 -0
- package/lib/base-components/display/components/r-icon/attribute-edit-mode-configs.d.ts.map +1 -0
- package/lib/base-components/display/components/r-icon/default-attribute-values.d.ts +3 -0
- package/lib/base-components/display/components/r-icon/default-attribute-values.d.ts.map +1 -0
- package/lib/base-components/display/components/r-icon/display-card-entry.d.ts +3 -0
- package/lib/base-components/display/components/r-icon/display-card-entry.d.ts.map +1 -0
- package/lib/base-components/display/components/r-icon/icon-attribute-value.d.ts +26 -0
- package/lib/base-components/display/components/r-icon/icon-attribute-value.d.ts.map +1 -0
- package/lib/base-components/display/components/r-icon/r-icon.component.d.ts +16 -0
- package/lib/base-components/display/components/r-icon/r-icon.component.d.ts.map +1 -0
- package/lib/base-components/display/components/r-icon/resolve-no-container.d.ts +7 -0
- package/lib/base-components/display/components/r-icon/resolve-no-container.d.ts.map +1 -0
- package/lib/base-components/display/components/r-icon/resolve-renders-own-element.d.ts +7 -0
- package/lib/base-components/display/components/r-icon/resolve-renders-own-element.d.ts.map +1 -0
- package/lib/base-components/display/components/r-list/attribute-edit-mode-configs.d.ts +10 -0
- package/lib/base-components/display/components/r-list/attribute-edit-mode-configs.d.ts.map +1 -0
- package/lib/base-components/display/components/r-list/default-attribute-values.d.ts +3 -0
- package/lib/base-components/display/components/r-list/default-attribute-values.d.ts.map +1 -0
- package/lib/base-components/display/components/r-list/display-card-entry.d.ts +3 -0
- package/lib/base-components/display/components/r-list/display-card-entry.d.ts.map +1 -0
- package/lib/base-components/display/components/r-list/list-attributes.d.ts +72 -0
- package/lib/base-components/display/components/r-list/list-attributes.d.ts.map +1 -0
- package/lib/base-components/display/components/r-list/r-list.component.d.ts +22 -0
- package/lib/base-components/display/components/r-list/r-list.component.d.ts.map +1 -0
- package/lib/base-components/display/components/r-list/resolve-no-container.d.ts +8 -0
- package/lib/base-components/display/components/r-list/resolve-no-container.d.ts.map +1 -0
- package/lib/base-components/display/components/r-list/resolve-renders-own-element.d.ts +7 -0
- package/lib/base-components/display/components/r-list/resolve-renders-own-element.d.ts.map +1 -0
- package/lib/base-components/display/components/r-text/attribute-edit-mode-configs.d.ts +3 -0
- package/lib/base-components/display/components/r-text/attribute-edit-mode-configs.d.ts.map +1 -0
- package/lib/base-components/display/components/r-text/default-attribute-values.d.ts +4 -0
- package/lib/base-components/display/components/r-text/default-attribute-values.d.ts.map +1 -0
- package/lib/base-components/display/components/r-text/display-card-entry.d.ts +3 -0
- package/lib/base-components/display/components/r-text/display-card-entry.d.ts.map +1 -0
- package/lib/base-components/display/components/r-text/enclosing-tags.d.ts +48 -0
- package/lib/base-components/display/components/r-text/enclosing-tags.d.ts.map +1 -0
- package/lib/base-components/display/components/r-text/r-text.component.d.ts +16 -0
- package/lib/base-components/display/components/r-text/r-text.component.d.ts.map +1 -0
- package/lib/base-components/display/components/r-text/resolve-enclosing-tag.d.ts +18 -0
- package/lib/base-components/display/components/r-text/resolve-enclosing-tag.d.ts.map +1 -0
- package/lib/base-components/display/components/r-text/resolve-no-container.d.ts +13 -0
- package/lib/base-components/display/components/r-text/resolve-no-container.d.ts.map +1 -0
- package/lib/base-components/display/components/r-text/resolve-renders-own-element.d.ts +11 -0
- package/lib/base-components/display/components/r-text/resolve-renders-own-element.d.ts.map +1 -0
- package/lib/base-components/display/components/r-video/attribute-edit-mode-configs.d.ts +3 -0
- package/lib/base-components/display/components/r-video/attribute-edit-mode-configs.d.ts.map +1 -0
- package/lib/base-components/display/components/r-video/build-video-delivery-urls.d.ts +7 -0
- package/lib/base-components/display/components/r-video/build-video-delivery-urls.d.ts.map +1 -0
- package/lib/base-components/display/components/r-video/default-attribute-values.d.ts +3 -0
- package/lib/base-components/display/components/r-video/default-attribute-values.d.ts.map +1 -0
- package/lib/base-components/display/components/r-video/display-card-entry.d.ts +3 -0
- package/lib/base-components/display/components/r-video/display-card-entry.d.ts.map +1 -0
- package/lib/base-components/display/components/r-video/r-video.component.d.ts +26 -0
- package/lib/base-components/display/components/r-video/r-video.component.d.ts.map +1 -0
- package/lib/base-components/display/components/r-video/resolve-no-container.d.ts +8 -0
- package/lib/base-components/display/components/r-video/resolve-no-container.d.ts.map +1 -0
- package/lib/base-components/display/components/r-video/resolve-renders-own-element.d.ts +6 -0
- package/lib/base-components/display/components/r-video/resolve-renders-own-element.d.ts.map +1 -0
- package/lib/base-components/editor-preview/card-entries/card-entries.d.ts +3 -0
- package/lib/base-components/editor-preview/card-entries/card-entries.d.ts.map +1 -0
- package/lib/base-components/editor-preview/card-groups.d.ts +3 -0
- package/lib/base-components/editor-preview/card-groups.d.ts.map +1 -0
- package/lib/component-identifiers.d.ts +4 -0
- package/lib/component-identifiers.d.ts.map +1 -0
- package/lib/component-library-module.d.ts +25 -0
- package/lib/component-library-module.d.ts.map +1 -0
- package/lib/get-component-metadata-for-editing.d.ts +3 -0
- package/lib/get-component-metadata-for-editing.d.ts.map +1 -0
- package/lib/get-preview-components.d.ts +12 -0
- package/lib/get-preview-components.d.ts.map +1 -0
- package/lib/get-source-components-plugin.d.ts +9 -0
- package/lib/get-source-components-plugin.d.ts.map +1 -0
- package/lib/shared/html-tag.component.d.ts +22 -0
- package/lib/shared/html-tag.component.d.ts.map +1 -0
- package/lib/shared/icons/append-icon-children.d.ts +5 -0
- package/lib/shared/icons/append-icon-children.d.ts.map +1 -0
- package/lib/shared/icons/svg-icon.component.d.ts +21 -0
- package/lib/shared/icons/svg-icon.component.d.ts.map +1 -0
- package/lib/shared/inline-markup/index.d.ts +5 -0
- package/lib/shared/inline-markup/index.d.ts.map +1 -0
- package/lib/shared/inline-markup/inline-markup.component.d.ts +16 -0
- package/lib/shared/inline-markup/inline-markup.component.d.ts.map +1 -0
- package/lib/shared/inline-markup/parse-inline-markers.d.ts +45 -0
- package/lib/shared/inline-markup/parse-inline-markers.d.ts.map +1 -0
- package/lib/shared/inline-markup/serialize-inline-markers.d.ts +14 -0
- package/lib/shared/inline-markup/serialize-inline-markers.d.ts.map +1 -0
- package/lib/shared/links/index.d.ts +8 -0
- package/lib/shared/links/index.d.ts.map +1 -0
- package/lib/shared/links/is-safe-href.d.ts +20 -0
- package/lib/shared/links/is-safe-href.d.ts.map +1 -0
- package/lib/shared/links/link-item.d.ts +39 -0
- package/lib/shared/links/link-item.d.ts.map +1 -0
- package/lib/shared/links/parse-inline-link-markers.d.ts +25 -0
- package/lib/shared/links/parse-inline-link-markers.d.ts.map +1 -0
- package/lib/shared/links/resolve-link-attributes.d.ts +13 -0
- package/lib/shared/links/resolve-link-attributes.d.ts.map +1 -0
- package/lib/types.d.ts +113 -0
- package/lib/types.d.ts.map +1 -0
- package/package.json +56 -0
- package/public-api.d.ts +30 -0
- package/public-api.d.ts.map +1 -0
- package/rulecms-source-components-angular.d.ts.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-no-container.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/base-components/display/components/r-video/resolve-no-container.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,QAAO,OAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-renders-own-element.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/base-components/display/components/r-video/resolve-renders-own-element.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAAO,OAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card-entries.d.ts","sourceRoot":"","sources":["../../../../../src/lib/base-components/editor-preview/card-entries/card-entries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAG7D,eAAO,MAAM,WAAW,EAAE,sBAAsB,EAU/C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card-groups.d.ts","sourceRoot":"","sources":["../../../../src/lib/base-components/editor-preview/card-groups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAG1D,eAAO,MAAM,UAAU,EAAE,sBAAsB,EAM9C,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
type ComponentIdentifier = 'r-text' | 'something-else' | 'cloudinary-advanced-image' | 'r-video' | 'r-icon' | 'r-button' | 'r-divider' | 'r-embed' | 'r-list' | 'r-accordion';
|
|
2
|
+
export declare const ComponentIdentifiers: Record<string, ComponentIdentifier>;
|
|
3
|
+
export {};
|
|
4
|
+
//# sourceMappingURL=component-identifiers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-identifiers.d.ts","sourceRoot":"","sources":["../../src/lib/component-identifiers.ts"],"names":[],"mappings":"AAAA,KAAK,mBAAmB,GACpB,QAAQ,GACR,gBAAgB,GAChB,2BAA2B,GAC3B,SAAS,GACT,QAAQ,GACR,UAAU,GACV,WAAW,GACX,SAAS,GACT,QAAQ,GACR,aAAa,CAAC;AAElB,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAW3D,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ComponentLibraryModule conformance (the @rulecms/widget-angular contract).
|
|
3
|
+
*
|
|
4
|
+
* This package is the DEFAULT component library. It conforms to the contract
|
|
5
|
+
* STRUCTURALLY — it has no runtime dependency on @rulecms/widget-angular.
|
|
6
|
+
* Consumers register it, e.g.:
|
|
7
|
+
*
|
|
8
|
+
* libraries: { default: () => import('@rulecms/source-components-angular') }
|
|
9
|
+
*
|
|
10
|
+
* or statically import the module for SSR pages.
|
|
11
|
+
*/
|
|
12
|
+
export declare const manifest: {
|
|
13
|
+
id: string;
|
|
14
|
+
version: string;
|
|
15
|
+
angularPeerRange: string;
|
|
16
|
+
};
|
|
17
|
+
/** The render surface: component type → renderable entry. */
|
|
18
|
+
export declare const components: Record<string, import("@rulecms/source-components-angular").RenderCardEntry>;
|
|
19
|
+
/** The editor surface: palette + attribute metadata for the RuleCMS composer. */
|
|
20
|
+
export declare const editor: {
|
|
21
|
+
previewComponents: import("@rulecms/source-components-angular").PreviewComponents;
|
|
22
|
+
previewCardGroups: import("@rulecms/source-components-angular").EditorPreviewCardGroup[];
|
|
23
|
+
componentMetadata: import("@rulecms/source-components-angular").ComponentMetadataForEditing;
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=component-library-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-library-module.d.ts","sourceRoot":"","sources":["../../src/lib/component-library-module.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,QAAQ;;;;CAIpB,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,UAAU,8EAAyC,CAAC;AAEjE,iFAAiF;AACjF,eAAO,MAAM,MAAM;;;;CAIlB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-component-metadata-for-editing.d.ts","sourceRoot":"","sources":["../../src/lib/get-component-metadata-for-editing.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,2BAA2B,EAAoB,MAAM,SAAS,CAAC;AAOjG,eAAO,MAAM,8BAA8B,mCAyB1C,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { PreviewComponents, EditorPreviewCardGroup } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Returns the preview card groups for drag and drop functionality.
|
|
4
|
+
* This replaces the dragDropPreviewCardGroups export.
|
|
5
|
+
*/
|
|
6
|
+
export declare const getPreviewCardGroups: () => EditorPreviewCardGroup[];
|
|
7
|
+
/**
|
|
8
|
+
* Returns a lookup map of preview components by entry ID.
|
|
9
|
+
* Results are cached after the first call.
|
|
10
|
+
*/
|
|
11
|
+
export declare const getPreviewComponents: () => PreviewComponents;
|
|
12
|
+
//# sourceMappingURL=get-preview-components.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-preview-components.d.ts","sourceRoot":"","sources":["../../src/lib/get-preview-components.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAKzE;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAO,sBAAsB,EAE7D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAO,iBAuBvC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { RenderCardEntry } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Returns the source components plugin with a lookup map of render components.
|
|
4
|
+
* Results are cached after the first call.
|
|
5
|
+
*/
|
|
6
|
+
export declare const getSourceComponentsPlugin: () => {
|
|
7
|
+
components: Record<string, RenderCardEntry>;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=get-source-components-plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-source-components-plugin.d.ts","sourceRoot":"","sources":["../../src/lib/get-source-components-plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,eAAe,EAAoB,MAAM,SAAS,CAAC;AA4B7E;;;GAGG;AACH,eAAO,MAAM,yBAAyB;gBA9BU,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;CA0C9E,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AfterViewInit, ElementRef, OnChanges, Renderer2, ViewContainerRef, TemplateRef } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class HtmlTagComponent implements AfterViewInit, OnChanges {
|
|
4
|
+
private readonly host;
|
|
5
|
+
private readonly renderer;
|
|
6
|
+
private readonly vcr;
|
|
7
|
+
tag: string;
|
|
8
|
+
styleProps?: {
|
|
9
|
+
[key: string]: any;
|
|
10
|
+
};
|
|
11
|
+
className?: string;
|
|
12
|
+
projected: TemplateRef<unknown>;
|
|
13
|
+
private created;
|
|
14
|
+
private viewReady;
|
|
15
|
+
constructor(host: ElementRef<HTMLElement>, renderer: Renderer2, vcr: ViewContainerRef);
|
|
16
|
+
ngAfterViewInit(): void;
|
|
17
|
+
ngOnChanges(): void;
|
|
18
|
+
private render;
|
|
19
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<HtmlTagComponent, never>;
|
|
20
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<HtmlTagComponent, "rulecms-html-tag", never, { "tag": { "alias": "tag"; "required": true; }; "styleProps": { "alias": "styleProps"; "required": false; }; "className": { "alias": "className"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=html-tag.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html-tag.component.d.ts","sourceRoot":"","sources":["../../../src/lib/shared/html-tag.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEb,UAAU,EAEV,SAAS,EACT,SAAS,EAET,gBAAgB,EAChB,WAAW,EACZ,MAAM,eAAe,CAAC;;AAEvB,qBAUa,gBAAiB,YAAW,aAAa,EAAE,SAAS;IAW7D,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAZK,GAAG,EAAG,MAAM,CAAC;IAC/B,UAAU,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEc,SAAS,EAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAE3E,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,SAAS,CAAS;gBAGP,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,EAC7B,QAAQ,EAAE,SAAS,EACnB,GAAG,EAAE,gBAAgB;IAGxC,eAAe,IAAI,IAAI;IAKvB,WAAW,IAAI,IAAI;IAMnB,OAAO,CAAC,MAAM;yCA3BH,gBAAgB;2CAAhB,gBAAgB;CAgD5B"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Renderer2 } from '@angular/core';
|
|
2
|
+
import type { IconNode } from '../../types';
|
|
3
|
+
/** Turns persisted Lucide geometry into SVG children on `svg`. */
|
|
4
|
+
export declare function appendIconChildren(renderer: Renderer2, svg: Element, iconNode: IconNode): void;
|
|
5
|
+
//# sourceMappingURL=append-icon-children.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"append-icon-children.d.ts","sourceRoot":"","sources":["../../../../src/lib/shared/icons/append-icon-children.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,kEAAkE;AAClE,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,SAAS,EACnB,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,QAAQ,GACjB,IAAI,CAUN"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ElementRef, OnChanges, Renderer2 } from '@angular/core';
|
|
2
|
+
import type { IconNode } from '../../types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class SvgIconComponent implements OnChanges {
|
|
5
|
+
private readonly host;
|
|
6
|
+
private readonly renderer;
|
|
7
|
+
iconNode: IconNode;
|
|
8
|
+
width: string | number;
|
|
9
|
+
height: string | number;
|
|
10
|
+
className?: string;
|
|
11
|
+
styleProps?: {
|
|
12
|
+
[key: string]: any;
|
|
13
|
+
};
|
|
14
|
+
ariaHidden: boolean;
|
|
15
|
+
a11yProps: Record<string, string>;
|
|
16
|
+
constructor(host: ElementRef<HTMLElement>, renderer: Renderer2);
|
|
17
|
+
ngOnChanges(): void;
|
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SvgIconComponent, never>;
|
|
19
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SvgIconComponent, "rulecms-svg-icon", never, { "iconNode": { "alias": "iconNode"; "required": true; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "className": { "alias": "className"; "required": false; }; "styleProps": { "alias": "styleProps"; "required": false; }; "ariaHidden": { "alias": "ariaHidden"; "required": false; }; "a11yProps": { "alias": "a11yProps"; "required": false; }; }, {}, never, never, true, never>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=svg-icon.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svg-icon.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/shared/icons/svg-icon.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EAEV,SAAS,EACT,SAAS,EACV,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;;AAG5C,qBAMa,gBAAiB,YAAW,SAAS;IAU9C,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAVA,QAAQ,EAAG,QAAQ,CAAC;IACtC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAM;IAC5B,MAAM,EAAE,MAAM,GAAG,MAAM,CAAM;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IACpC,UAAU,UAAQ;IAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;gBAG7B,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,EAC7B,QAAQ,EAAE,SAAS;IAGtC,WAAW,IAAI,IAAI;yCAdR,gBAAgB;2CAAhB,gBAAgB;CAgD5B"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { parseInlineMarkers } from './parse-inline-markers';
|
|
2
|
+
export type { InlineMarks, MarkupRun, MarkupTextRun, MarkupSpanRun, MarkupBreakRun, } from './parse-inline-markers';
|
|
3
|
+
export { formatInlineMarker, serializeInlineMarkers } from './serialize-inline-markers';
|
|
4
|
+
export { InlineMarkupComponent } from './inline-markup.component';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/shared/inline-markup/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,YAAY,EACV,WAAW,EACX,SAAS,EACT,aAAa,EACb,aAAa,EACb,cAAc,GACf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAExF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ElementRef, OnChanges, Renderer2 } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class InlineMarkupComponent implements OnChanges {
|
|
4
|
+
private readonly host;
|
|
5
|
+
private readonly renderer;
|
|
6
|
+
text: string;
|
|
7
|
+
links: unknown;
|
|
8
|
+
constructor(host: ElementRef<HTMLElement>, renderer: Renderer2);
|
|
9
|
+
ngOnChanges(): void;
|
|
10
|
+
private renderSpan;
|
|
11
|
+
private createAnchor;
|
|
12
|
+
private clear;
|
|
13
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<InlineMarkupComponent, never>;
|
|
14
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<InlineMarkupComponent, "rulecms-inline-markup", never, { "text": { "alias": "text"; "required": false; }; "links": { "alias": "links"; "required": false; }; }, {}, never, never, true, never>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=inline-markup.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline-markup.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/shared/inline-markup/inline-markup.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EAEV,SAAS,EACT,SAAS,EACV,MAAM,eAAe,CAAC;;AAiBvB,qBAMa,qBAAsB,YAAW,SAAS;IAKnD,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IALlB,IAAI,SAAM;IACV,KAAK,EAAE,OAAO,CAAC;gBAGL,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,EAC7B,QAAQ,EAAE,SAAS;IAGtC,WAAW,IAAI,IAAI;IAmCnB,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,KAAK;yCA5EF,qBAAqB;2CAArB,qBAAqB;CAkFjC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The formatting one marker can carry. Independent flags rather than a union,
|
|
3
|
+
* because a span can be bold and italic and struck at once.
|
|
4
|
+
*/
|
|
5
|
+
export type InlineMarks = {
|
|
6
|
+
bold: boolean;
|
|
7
|
+
italic: boolean;
|
|
8
|
+
strike: boolean;
|
|
9
|
+
};
|
|
10
|
+
export type MarkupTextRun = {
|
|
11
|
+
kind: 'text';
|
|
12
|
+
text: string;
|
|
13
|
+
};
|
|
14
|
+
export type MarkupSpanRun = {
|
|
15
|
+
kind: 'span';
|
|
16
|
+
text: string;
|
|
17
|
+
/**
|
|
18
|
+
* 1-based position in the link list, when the marker carried an index. A
|
|
19
|
+
* span can be marked without linking (`{b|word}`) and linked without marks
|
|
20
|
+
* (`{1|word}`), so this is optional and the marks are always present.
|
|
21
|
+
*/
|
|
22
|
+
index?: number;
|
|
23
|
+
marks: InlineMarks;
|
|
24
|
+
};
|
|
25
|
+
export type MarkupBreakRun = {
|
|
26
|
+
kind: 'break';
|
|
27
|
+
};
|
|
28
|
+
export type MarkupRun = MarkupTextRun | MarkupSpanRun | MarkupBreakRun;
|
|
29
|
+
/**
|
|
30
|
+
* Splits authored text into plain runs, marked/linked spans, and line breaks.
|
|
31
|
+
*
|
|
32
|
+
* The grammar, and everything it deliberately leaves as literal text, is
|
|
33
|
+
* specified in `rulecms/__docs__/__ARCHITECTURE__/INLINE_MARKUP_ARCHITECTURE.md`.
|
|
34
|
+
* In short: a marker is `{`, then lowercase mark letters, then a link index,
|
|
35
|
+
* then `|`, then its text, then `}`. At least one of the letters and the index
|
|
36
|
+
* must be present, and everything that does not match that shape stays
|
|
37
|
+
* verbatim — `{name}`, `{99}`, a lone `{`, JSON fragments, an unterminated
|
|
38
|
+
* marker, an unknown mark letter, and empty span text.
|
|
39
|
+
*
|
|
40
|
+
* Indexes are 1-based and normalize through a base-10 parse, so `{01|x}` and
|
|
41
|
+
* `{1|x}` point at the same entry. Resolving an index to an entry is the
|
|
42
|
+
* caller's job; this stays pure and free of React.
|
|
43
|
+
*/
|
|
44
|
+
export declare function parseInlineMarkers(value: string): MarkupRun[];
|
|
45
|
+
//# sourceMappingURL=parse-inline-markers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-inline-markers.d.ts","sourceRoot":"","sources":["../../../../src/lib/shared/inline-markup/parse-inline-markers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAE9E,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,WAAW,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAE/C,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,aAAa,GAAG,cAAc,CAAC;AAmDvE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,CA2C7D"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { MarkupRun } from './parse-inline-markers';
|
|
2
|
+
/** One run as authored text. */
|
|
3
|
+
export declare function formatInlineMarker(run: MarkupRun): string;
|
|
4
|
+
/**
|
|
5
|
+
* Runs back to the string they were parsed from.
|
|
6
|
+
*
|
|
7
|
+
* This is the writer half of the grammar, and it lives beside the parser so
|
|
8
|
+
* that an editor never hand-assembles marker syntax. `parseInlineMarkers` and
|
|
9
|
+
* this function are inverses for anything the parser produces, which is what
|
|
10
|
+
* lets a rich editor round-trip through source mode without rewriting content
|
|
11
|
+
* the author did not touch.
|
|
12
|
+
*/
|
|
13
|
+
export declare function serializeInlineMarkers(runs: readonly MarkupRun[]): string;
|
|
14
|
+
//# sourceMappingURL=serialize-inline-markers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize-inline-markers.d.ts","sourceRoot":"","sources":["../../../../src/lib/shared/inline-markup/serialize-inline-markers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,SAAS,EAAiB,MAAM,wBAAwB,CAAC;AAiCpF,gCAAgC;AAChC,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CASzD;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,GAAG,MAAM,CAEzE"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { isLinkItem, isEmptyLinkItem, getLinkItemAt } from './link-item';
|
|
2
|
+
export type { LinkItem } from './link-item';
|
|
3
|
+
export { isSafeHref, REJECTED_HREF_SCHEMES } from './is-safe-href';
|
|
4
|
+
export { resolveLinkAttributes } from './resolve-link-attributes';
|
|
5
|
+
export type { AnchorAttributes } from './resolve-link-attributes';
|
|
6
|
+
export { parseInlineLinkMarkers } from './parse-inline-link-markers';
|
|
7
|
+
export type { InlineRun, InlineTextRun, InlineLinkRun } from './parse-inline-link-markers';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/shared/links/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schemes that can execute or smuggle a payload. Mirrors the denylist in
|
|
3
|
+
* RuleCMS `text-safety/validate-text-content.ts`; the two must stay in step,
|
|
4
|
+
* because that one warns at save and this one is the guarantee at render.
|
|
5
|
+
*/
|
|
6
|
+
export declare const REJECTED_HREF_SCHEMES: readonly string[];
|
|
7
|
+
/**
|
|
8
|
+
* Whether a value is safe to put in an `href`.
|
|
9
|
+
*
|
|
10
|
+
* A denylist, not an allowlist. Customers link with git and ssh URLs, mobile
|
|
11
|
+
* deep links, `mailto:`, `tel:`, `sms:`, custom app schemes, protocol-relative
|
|
12
|
+
* `//host/path`, and bare `/path`, `#anchor`, `?q=1`, `./rel` — all of which
|
|
13
|
+
* are accepted. A host is not required and neither is http/https. Only the
|
|
14
|
+
* schemes that turn a link into code or an opaque payload are turned away.
|
|
15
|
+
*
|
|
16
|
+
* Rejection happens at render, never at save: the composer may use this for a
|
|
17
|
+
* non-blocking warning, but stored content is not trusted content.
|
|
18
|
+
*/
|
|
19
|
+
export declare function isSafeHref(value: unknown): boolean;
|
|
20
|
+
//# sourceMappingURL=is-safe-href.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-safe-href.d.ts","sourceRoot":"","sources":["../../../../src/lib/shared/links/is-safe-href.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAWlD,CAAC;AAqBF;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAYlD"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One link entry as the composer stores it. Shared by every component that
|
|
3
|
+
* links (text markers today, icons next), so nothing here knows about text.
|
|
4
|
+
*/
|
|
5
|
+
export type LinkItem = {
|
|
6
|
+
href?: string;
|
|
7
|
+
/** Author-facing name for identifying the entry in the composer. Never rendered. */
|
|
8
|
+
label?: string;
|
|
9
|
+
target?: string;
|
|
10
|
+
rel?: string;
|
|
11
|
+
title?: string;
|
|
12
|
+
ariaLabel?: string;
|
|
13
|
+
/** `true` = bare download attribute; string = suggested filename. */
|
|
14
|
+
download?: string | boolean;
|
|
15
|
+
hreflang?: string;
|
|
16
|
+
referrerPolicy?: string;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Runtime guard for entries arriving through componentAttributes (untyped,
|
|
20
|
+
* editor-authored data).
|
|
21
|
+
*
|
|
22
|
+
* Only object shape is checked. Field types are not: a single bad field must
|
|
23
|
+
* cost that field, not the whole entry, so per-field validation belongs to
|
|
24
|
+
* `resolveLinkAttributes` where each value is turned into an attribute.
|
|
25
|
+
*/
|
|
26
|
+
export declare function isLinkItem(value: unknown): value is LinkItem;
|
|
27
|
+
/**
|
|
28
|
+
* True for a cleared slot. Clearing a link stores `{}` rather than removing
|
|
29
|
+
* the array element, because marker indexes are 1-based positions: dropping an
|
|
30
|
+
* element would silently repoint every later marker.
|
|
31
|
+
*/
|
|
32
|
+
export declare function isEmptyLinkItem(item: unknown): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* The entry a `{n|…}` marker points at, by 1-based position. Tolerant of bad
|
|
35
|
+
* data on every axis — a non-array list, a fractional or out-of-range index,
|
|
36
|
+
* a hole in the array — because none of it may throw during a render.
|
|
37
|
+
*/
|
|
38
|
+
export declare function getLinkItemAt(links: unknown, oneBasedIndex: number): LinkItem | undefined;
|
|
39
|
+
//# sourceMappingURL=link-item.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link-item.d.ts","sourceRoot":"","sources":["../../../../src/lib/shared/links/link-item.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAE5D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAUtD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CASzF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export type InlineTextRun = {
|
|
2
|
+
kind: 'text';
|
|
3
|
+
text: string;
|
|
4
|
+
};
|
|
5
|
+
export type InlineLinkRun = {
|
|
6
|
+
kind: 'link';
|
|
7
|
+
index: number;
|
|
8
|
+
text: string;
|
|
9
|
+
};
|
|
10
|
+
export type InlineRun = InlineTextRun | InlineLinkRun;
|
|
11
|
+
/**
|
|
12
|
+
* @deprecated Use `parseInlineMarkers` from `shared/inline-markup`.
|
|
13
|
+
*
|
|
14
|
+
* The link-only view of the grammar, kept because it is public API. Markers now
|
|
15
|
+
* also carry marks (`{b|word}`) and line breaks (`{br|}`), which this shape
|
|
16
|
+
* cannot express, so anything that is not a linked span is flattened into text:
|
|
17
|
+
* marked spans contribute their words without the marks, and a break
|
|
18
|
+
* contributes a newline. That is exactly what a caller stripping markers out of
|
|
19
|
+
* a string wants — `resolveAccordionSummary` is the one in this package — and
|
|
20
|
+
* it is wrong for anything that means to render them.
|
|
21
|
+
*
|
|
22
|
+
* Adjacent text is merged, so text with no linked spans is still one run.
|
|
23
|
+
*/
|
|
24
|
+
export declare function parseInlineLinkMarkers(value: string): InlineRun[];
|
|
25
|
+
//# sourceMappingURL=parse-inline-link-markers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-inline-link-markers.d.ts","sourceRoot":"","sources":["../../../../src/lib/shared/links/parse-inline-link-markers.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1E,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,aAAa,CAAC;AAEtD;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,CAuBjE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { LinkItem } from './link-item';
|
|
2
|
+
export type AnchorAttributes = {
|
|
3
|
+
href: string;
|
|
4
|
+
target?: string;
|
|
5
|
+
rel?: string;
|
|
6
|
+
title?: string;
|
|
7
|
+
'aria-label'?: string;
|
|
8
|
+
download?: string | true;
|
|
9
|
+
hrefLang?: string;
|
|
10
|
+
referrerPolicy?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare function resolveLinkAttributes(item: LinkItem | undefined): AnchorAttributes | undefined;
|
|
13
|
+
//# sourceMappingURL=resolve-link-attributes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-link-attributes.d.ts","sourceRoot":"","sources":["../../../../src/lib/shared/links/resolve-link-attributes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAsCF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS,CA4B9F"}
|
package/lib/types.d.ts
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
export { ComponentIdentifiers } from './component-identifiers';
|
|
2
|
+
export type AttributeListForComponentTypes = {
|
|
3
|
+
[key: string]: string[];
|
|
4
|
+
};
|
|
5
|
+
export type ComponentNameToModifyAttribute = {
|
|
6
|
+
[key: string]: string;
|
|
7
|
+
};
|
|
8
|
+
export type DeviceTypeBasedAttributeValues = {
|
|
9
|
+
phone?: any;
|
|
10
|
+
tablet?: any;
|
|
11
|
+
desktop?: any;
|
|
12
|
+
all?: any;
|
|
13
|
+
};
|
|
14
|
+
export type AttributeEditModeConfig = {
|
|
15
|
+
name: string;
|
|
16
|
+
heading?: string;
|
|
17
|
+
subHeading?: string;
|
|
18
|
+
defaultValues?: DeviceTypeBasedAttributeValues;
|
|
19
|
+
hiddenToUser?: boolean;
|
|
20
|
+
};
|
|
21
|
+
export type DefaultAttributeValue = {
|
|
22
|
+
name: string;
|
|
23
|
+
defaultValues: DeviceTypeBasedAttributeValues;
|
|
24
|
+
};
|
|
25
|
+
export type PageViewType = 'Preview' | 'Compose' | 'RenderedPage';
|
|
26
|
+
export type WidgetInstanceProps = {
|
|
27
|
+
[key: string]: any;
|
|
28
|
+
};
|
|
29
|
+
export type CssStyleMap = {
|
|
30
|
+
[key: string]: string | number | undefined;
|
|
31
|
+
};
|
|
32
|
+
export type NoContainerResolverContext = {
|
|
33
|
+
componentAttributes?: {
|
|
34
|
+
[key: string]: any;
|
|
35
|
+
};
|
|
36
|
+
styleProps?: {
|
|
37
|
+
[key: string]: any;
|
|
38
|
+
} | undefined;
|
|
39
|
+
};
|
|
40
|
+
export type ResolveNoContainer = (context: NoContainerResolverContext) => boolean;
|
|
41
|
+
export type ResolveRendersOwnElement = (context: NoContainerResolverContext) => boolean;
|
|
42
|
+
/** Angular standalone component class used as a library card. */
|
|
43
|
+
export type LibraryCardComponent = import('@angular/core').Type<{
|
|
44
|
+
componentAttributes?: {
|
|
45
|
+
[key: string]: any;
|
|
46
|
+
};
|
|
47
|
+
pageViewType?: PageViewType;
|
|
48
|
+
styleProps?: {
|
|
49
|
+
[key: string]: any;
|
|
50
|
+
};
|
|
51
|
+
className?: string;
|
|
52
|
+
widgetInstanceProps?: WidgetInstanceProps;
|
|
53
|
+
}>;
|
|
54
|
+
export type DisplayCardEntry = {
|
|
55
|
+
id: string;
|
|
56
|
+
card: LibraryCardComponent;
|
|
57
|
+
defaultAttributeValues: DefaultAttributeValue[];
|
|
58
|
+
attributeEditModeConfigs: AttributeEditModeConfig[];
|
|
59
|
+
resolveNoContainer?: ResolveNoContainer;
|
|
60
|
+
noContainer?: boolean;
|
|
61
|
+
resolveRendersOwnElement?: ResolveRendersOwnElement;
|
|
62
|
+
};
|
|
63
|
+
export type RenderCardEntry = {
|
|
64
|
+
id: string;
|
|
65
|
+
card: LibraryCardComponent;
|
|
66
|
+
defaultAttributeValues: DefaultAttributeValue[];
|
|
67
|
+
resolveNoContainer?: ResolveNoContainer;
|
|
68
|
+
noContainer?: boolean;
|
|
69
|
+
resolveRendersOwnElement?: ResolveRendersOwnElement;
|
|
70
|
+
};
|
|
71
|
+
export type ComponentMetadata = {
|
|
72
|
+
defaultAttributeValues: DefaultAttributeValue[];
|
|
73
|
+
attributeEditModeConfigs: AttributeEditModeConfig[];
|
|
74
|
+
};
|
|
75
|
+
export type ComponentMetadataForEditing = {
|
|
76
|
+
attributeListForComponentTypes: AttributeListForComponentTypes;
|
|
77
|
+
componentNameToModifyAttribute: ComponentNameToModifyAttribute;
|
|
78
|
+
componentMetadata: Record<string, ComponentMetadata>;
|
|
79
|
+
};
|
|
80
|
+
export type EditorPreviewCardEntry = {
|
|
81
|
+
id: string;
|
|
82
|
+
icon: string;
|
|
83
|
+
label: string;
|
|
84
|
+
};
|
|
85
|
+
export type CardEntry = DisplayCardEntry | EditorPreviewCardEntry;
|
|
86
|
+
export type Card = {
|
|
87
|
+
title: string;
|
|
88
|
+
entries: CardEntry[] | DisplayCardEntry[];
|
|
89
|
+
};
|
|
90
|
+
export type CardGroup = {
|
|
91
|
+
title: string;
|
|
92
|
+
cards: Card[];
|
|
93
|
+
showInitially?: boolean;
|
|
94
|
+
};
|
|
95
|
+
export type EditorPreviewCard = {
|
|
96
|
+
title: string;
|
|
97
|
+
entries: EditorPreviewCardEntry[];
|
|
98
|
+
};
|
|
99
|
+
export type EditorPreviewCardGroup = {
|
|
100
|
+
title: string;
|
|
101
|
+
cards: EditorPreviewCard[];
|
|
102
|
+
showInitially?: boolean;
|
|
103
|
+
};
|
|
104
|
+
export interface SourceComponentsPlugin {
|
|
105
|
+
components: Record<string, RenderCardEntry>;
|
|
106
|
+
}
|
|
107
|
+
export type IconNode = [string, Record<string, string>][];
|
|
108
|
+
export type IconAttributeValue = {
|
|
109
|
+
name: string;
|
|
110
|
+
iconNode: IconNode;
|
|
111
|
+
};
|
|
112
|
+
export type PreviewComponents = Record<string, EditorPreviewCardEntry>;
|
|
113
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@rulecms/source-components-angular",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Angular source components for RuleCMS — the Angular counterpart of @rulecms/source-components-react",
|
|
5
|
+
"license": "UNLICENSED",
|
|
6
|
+
"author": "RuleCMS, LLC",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"rulecms",
|
|
9
|
+
"source",
|
|
10
|
+
"components",
|
|
11
|
+
"angular",
|
|
12
|
+
"cms"
|
|
13
|
+
],
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "git+https://github.com/rulecms/source-components-angular.git"
|
|
17
|
+
},
|
|
18
|
+
"sideEffects": false,
|
|
19
|
+
"private": false,
|
|
20
|
+
"peerDependencies": {
|
|
21
|
+
"@angular/common": ">=17.0.0",
|
|
22
|
+
"@angular/core": ">=17.0.0",
|
|
23
|
+
"@angular/platform-browser": ">=17.0.0",
|
|
24
|
+
"@rulecms/widget-angular": ">=0.1.0"
|
|
25
|
+
},
|
|
26
|
+
"peerDependenciesMeta": {
|
|
27
|
+
"@rulecms/widget-angular": {
|
|
28
|
+
"optional": true
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"lucide-static": "1.28.0",
|
|
33
|
+
"tslib": "^2.3.0"
|
|
34
|
+
},
|
|
35
|
+
"publishConfig": {
|
|
36
|
+
"access": "public"
|
|
37
|
+
},
|
|
38
|
+
"engines": {
|
|
39
|
+
"node": ">=18.0.0"
|
|
40
|
+
},
|
|
41
|
+
"module": "fesm2022/rulecms-source-components-angular.mjs",
|
|
42
|
+
"typings": "index.d.ts",
|
|
43
|
+
"exports": {
|
|
44
|
+
"./package.json": {
|
|
45
|
+
"default": "./package.json"
|
|
46
|
+
},
|
|
47
|
+
".": {
|
|
48
|
+
"types": "./index.d.ts",
|
|
49
|
+
"default": "./fesm2022/rulecms-source-components-angular.mjs"
|
|
50
|
+
},
|
|
51
|
+
"./icon-registry": {
|
|
52
|
+
"types": "./icon-registry/index.d.ts",
|
|
53
|
+
"default": "./fesm2022/rulecms-source-components-angular-icon-registry.mjs"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|