// 使用 `export` 关键字将名为 `button` 的变量作为模块的导出项，这样其他模块就能引入并使用它。
// `button` 被赋值为通过 `Behavior` 函数创建的一个行为对象（在微信小程序等框架里，行为对象可以被组件引入，以复用其中定义的各类属性、方法以及外部类名等内容）。
export const button = Behavior({
    // `externalClasses` 属性用于定义该行为对象外部可传入的类名列表，这里定义了一个名为 `hover-class` 的外部类名。
    // 外部类名意味着使用了这个行为的组件，在外部使用时可以通过这个类名来自定义相应的样式，增强组件样式的可定制性。
    externalClasses: ['hover-class'],

    // `properties` 属性用于定义该行为对象包含的一系列属性，这些属性可以被使用了这个行为的组件所接收和使用，相当于组件对外暴露的可配置属性。
    properties: {
        // `id` 属性，其值被限定为字符串类型（`String`），外部使用组件时传入的 `id` 值需要符合字符串的格式要求，可用于唯一标识组件等用途。
        id: String,
        // `lang` 属性，详细定义了它的类型为字符串类型（`type: String`），并且设置了默认值为 `'en'`。意味着如果外部没有传入该属性值，组件内部会默认使用 `'en'` 这个值，常用于设置语言相关的配置。
        lang: {
            type: String,
            value: 'en'
        },
        // `businessId` 属性，限定接收的值类型为数字类型（`Number`），用于接收和处理与业务相关的数字标识等信息。
        businessId: Number,
        // `sessionFrom` 属性，其值限定为字符串类型（`String`），可用于表示会话来源等相关信息，外部使用组件时需要传入符合字符串格式的数据。
        sessionFrom: String,
        // `sendMessageTitle` 属性，限定为字符串类型（`String`），可能用于设置发送消息时的标题内容等，外部传入对应字符串来配置此功能相关信息。
        sendMessageTitle: String,
        // `sendMessagePath` 属性，同样限定为字符串类型（`String`），也许用于指定发送消息的路径相关信息，由外部传入合适的字符串值进行配置。
        sendMessagePath: String,
        // `sendMessageImg` 属性，也是字符串类型（`String`），大概用于配置发送消息时所附带的图片相关信息，外部传入对应字符串进行定制。
        sendMessageImg: String,
        // `showMessageCard` 属性，其类型被定义为布尔类型（`Boolean`），用于控制是否显示消息卡片等相关功能的显示与否，外部传入 `true` 或 `false` 来进行相应设置。
        showMessageCard: Boolean,
        // `appParameter` 属性，限定为字符串类型（`String`），可用于传递应用相关的参数信息，外部传入对应字符串来配置相应功能。
        appParameter: String,
        // `ariaLabel` 属性，同样是字符串类型（`String`），在无障碍访问相关的场景下，用于设置元素的可访问性标签等信息，方便屏幕阅读器等辅助工具使用。
        ariaLabel: String
    }
});